「プログラマのための文字コード技術入門」で勉強中(6)
一通り目を通した。
プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ)
- 作者: 矢野啓介
- 出版社/メーカー: 技術評論社
- 発売日: 2010/02/18
- メディア: 単行本(ソフトカバー)
- 購入: 33人 クリック: 544回
- この商品を含むブログ (121件) を見る
「第8章 はまりやすい落とし穴とその対処」
16進ダンプツール
- od コマンド
- hd コマンド
- xxd コマンド
改行コード
半角・全角問題
- 文字コードは「全角・半角」を決めていない
- 1バイト、2バイトという違いはある
- 利用者に「全角・半角」を意識させない
全角数字を半角数字に、半角片仮名(JIS X 0201)を全角片仮名(JIS X 0208)に変換する。
$ ruby -rnkf -e "puts NKF.nkf('-Z0', '0123456789')" 0123456789 $ ruby -rnkf -e "puts NKF.nkf('-WwX', 'アイウエオ')" アイウエオ
円記号問題
- 円記号とバックスラッシュとが入れ替わる事がある
- ASCIIの0x5Cはバックスラッシュだが、JIS X 0201の0x5Cは円記号
- Shift_JISはJIS X 0201を拡張した符号化方式
- EUC-JPはASCIIを拡張した符号化方式
- UTF-8はASCIIの上位互換
- HTMLのlang属性の影響で0x5Cが円記号として表示されたりする
- フォントに依存
- Unicodeとの変換による問題
波ダッシュ問題
- JIS X 0208の1区33点にある記号
- 1区33点以外で変換による問題が発生しがちな文字
- 双柱(1-34)
- U+2016: DOUBLE VERTICAL LINE
- U+2225: PARALLEL TO
- 負符号(1-61)
- U+2212: MINUS SIGN
- U+FF0D: FULLWIDTH HYPHEN-MINUS
- セント記号(1-81)
- U+00A2: CENT SIGN
- U+FFE0: FULLWIDTH CENT SIGN
- ポンド記号(1-82)
- U+00A3: POUND SIGN
- U+FFE1: FULLWIDTH POUND SIGN
- 否定記号(2-44)
- U+00AC: NOT SIGN
- U+FFE2: FULLWIDTH NOT SIGN
- ダッシュ(1-29)
- U+2014: EM DASH
- U+2015: HORIZONTAL BAR
- 双柱(1-34)