Char

「JIS X 0213:2004 対応」の多義性

Windows VistaはJIS X 0213:2004に対応しないらしいを見たり、okuokuさんと話したりして思ったこと。 そもそも、JIS X 0213:2004 ではいくつかのレイヤーを定義している。具体的には以下の通り。 字体 Abstract Character Repertoire Coded Character Set (C…

WAVE DASH

メイリオではU+301CとU+FF5Eのグリフが同一になったようだけれど、この辺を正規化するツールは欲しい気もするなぁ。しかし、正規化する文字のリストアップが面倒な罠。メモ代わりにXML日本語プロファイル 解説の訳

いわゆる半角カナ

Legacy-Encodingのオフラインミーティングに行ってきたわけです。色々話は出ていて、直接関係のある話はMLでしているわけですが、脇道で、いわゆる半角カナの話。 芝野氏曰く「縦書きの時、半角文字は横に寝かせる、全角文字は一文字ずつ縦に並ぶ。だから両…

文字を数える

artonさんの出題と解答例とか。以下のような解き方もおもしろいかな。もちろんUTF-8決め打ちならkconv不要。 require'kconv' "日本語".toutf8.unpack('U*').sizeArray#injectは凄い便利なので、artonさんのString#char_countも以下のように書き換えられます…

UTF-8の正規表現

弾さんのところにUTF-8 vs. ISO-10646というentryが。PerlではルーズなUTF-8のことをutf8と読んでましたね。 というわけで、UTF-8 の文字にマッチする正規表現という話。蛇足になりますけれど、もっと厳密にしますと、最短でないUTF-8表現を除外できるので、…

nkf と rdoc

結城さんに突っ込まれてしまったので、rdocについて。歴史的経緯から、Ruby には RD によるマニュアルの体系と、RDoc による体系が並立しています。さて、NKFや Kconv には ruby-man:NKF や ruby-man:Kconv のように RD によるマニュアルが存在します。しか…

nkf と UTF-32

nkf の UTF-32 サポートに対する需要ってどの程度あるのかなぁ。 微妙に実験的なサポートコードは手元にあったりするんだけど。 とりあえず、UTF-16 の文字コード推測は BOM のみで行っているので、 その辺を変えたコードは遅かれ早かれ入れるつもりなのだけ…

Quoted-printable と "Q" encoding

RFC2045 に規定されている The Quoted-Printable encoding と RFC2047 の The "Q" encoding は微妙に異なるわけですが、それでも問題になることはさほどないと思いきや、-mQ でバグる例が(汗 RFC2049 の mail-safe の要件や RFC2047 section 5 等を見ると、…

nkf 2.0.6に向けてのChangelog

そのうち出すであろう nkf 2.0.6 の覚書 .SH nkf 2.0.6 .PP ひらがなカタカナ変換のドキュメントが逆になっていたのを修正しました。 正しいドキュメントは以下の通りです。 \-h1 \--hiragana カタカナ->ひらがな \-h2 \--katakana ひらがな->カタカナ \-h3 …

nkf (2)

先日なんか書きましたけれど、結局フルサポートする事にしました。 CP932 to UTF-16BE nkf -S -xw16B0 --cp932 UTF-16BE to CP932 nkf -s -xW16B0 CP51932 to UTF-16BE nkf -E -xw16B0 --cp932 UTF-16BE to CP51932 nkf -e -xW16B0 eucJP-ms to UTF-16BE nkf…

skf

なんか散々な結果に・・・。そもそも、system関数を多用するためか、そのままだと動かないかもしれません。skfが落ちてしまう場合は 「log1 +=」や「log3 +=」を 「puts」にしてしまうといいかも。しかし、はやくPerlモジュールにならないかな、なったらRuby…

nkf

なおnkf用の設定はiconvよりもだいぶ条件を緩めてあったりはします。これはiconv等のようにcodesetをきっちり指定して、それに基づいた変換を行うものと異なり、nkfはあくまでSJIS・EUC・JISを指定した上で、ユーザの意図に沿うようにできるかぎりよしなに計…

Citrus iconv (4)

というわけで、さっそく先日の森山さんによるパッチによって、CP932関連の互換性がだいぶ改善されたCitrus iconvを改めてテストしてみました。現在のnetbsd-currentでのテスト結果です。 Unicode to cp932 Convertion Test corrrect: 9359 failed: 1 U+3094:…

Test Encoding Converter

先日のCitrus iconvのテストで用いたスクリプトでは、重複符号化された文字についてのチェックは行われていませんでした。 そこで、今回改めて、IBMのICUやPerlのEncodeモジュールで用いられている、ucm形式のファイルを読み込んでチェックするようにしてみ…

Encode::EUCJPMS 0.05 Released

EUCJPMS.pmを更新し忘れていたので、0.05をリリース^^; 0.05 Thu Oct 13 04:38:29 2005 ! EUCJPMS.pm Fixed: qr/\bcp51932$/i was aliased to '"eucJP-ms"'

Encode::EUCJPMS 0.04 Released

というわけで、0.04をリリース。 eucJP-open もあった方がいいのかな。。。?http://search.cpan.org/dist/Encode-EUCJPMS/ 0.04 Tue Oct 11 03:59:38 2005 ! ucm/eucJP-ms.ucm Fixed: Can't convert User defined characters, duplicated characters, JIS X…

Citrus iconv と CP932

Rubyist Magazine 0009 号にて、 Citrus iconv で Windows の機種依存文字が Unicode に変換できないと書いたら、早速修正してくださいました。ありがとうございます。 src/share/i18n/csmapper/CP/mapper.dir.CP.src src/share/i18n/csmapper/CP/CP932EXT%U…

JIS2004と「字形の変更」

.mjtさんのところで見かけた2004 JIS をめぐる混乱を読んで、頭痛がした。 日本語の文字コードは未だにこんな連中に弄ばれているのか・・・。 > 「区鳥」と「區鳥」とでは、大きく字形が異なる 文脈を読めば、同じ文字だから両方正しい。 規格に準じれば、「…

NetBSD iconv

NetBSDのiconvはCitrusプロジェクトの成果を利用しており、 glibcやlibiconvとは独自の実装なわけですが、 一部の機種依存文字を変換する事が出来ません。とりあずCP932->UTF-8での変換でこける文字を置いておきます。 ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ ㍉㌔…

Character Encoding Model

Unicode Technical Report #17: Character Encoding Modelをまとめたものをメモ代わりに。 複雑な文字コードの概念を整理する際、この文書はなかなかに役に立つ。 Abstract Character Repertoire (ACR) 文字の同一性 these objects are defined by conventio…

UTF-8-MAC

とりあえずUTF-8の場合だけ実装してみた。 今考えればUTF-16でも対応できるように出来たのだが、 まぁ、それは気が向いたら修正しよう。http://developer.apple.com/ja/qa/qa2001/qa1173.html とりあえず、UTF-8-MACはここから飛べるテーブルにそって置換す…

nkf/skf vs iconv

iconvもいいかなぁと思っていたけれども、最近は思い直してきた。iconvはどうしてもエンコーディング名のみで指定する方向に行くわけで、これはちょっと微妙。euc-jp-ms-dosとか、指定としてありえないじゃん。オプション的なものを付けづらってのもあるし。…

Unicode正規化について

Unicode正規化 NFC (Normalization Form C), NFD (Normalization Form D), NFKC (Normalization Form KC) ,NFKD (Normalization Form KD)とある。CはComposition。つまり、合成して完成形にする。 DはDecomposition。つまり、分解する。 KはCompatibility。…

Encode.pm

Perl5.8ではEncode.pmという巨大な文字コード変換ライブラリが入っています。しかし、日本語の変換に際しては、さまざまな問題があります。まずEUC-JPへと変換する場合の問題の回避策は以下の通り。 Encode($str, 'utf-8', 'EUC-JP', Encode::FB_HTMLCREF); …

文字

each_charってどうよ?って話だけれど、characterで正しいと思います。letterやglyphは違う意味ですしね。「文字構成要素でも符号位置を持っていれば,それをcharacterと呼ぶことがSC 2の定義であり,これらを合成した結果の"いわゆる文字"はcombining seque…

エンコーディング関連メモ

エンコーディング関連の実装をする際に、知っておくべきことのメモ。 新キャラクタセット cp932 / eucjpms CP932はどこがShift_JISと違うのか。EUC-JPだけでなく、EUC-JP-MSが必要な理由。 skf NetBSDで、LIBS=-lintlが邪魔してmake出来ない NetBSD/FreeBSD…