2013年3月3日日曜日

[Emacs]文字コード

  • バッファの文字コード変換
    C-x RET f (文字コード)
    
  • 文字コードを指定してファイルを開く
    C-x RET c [Enter] (文字コード) C-x C-f [Enter]
    
  • 文字コードを指定してファイルを開きなおす
    C-x RET c [Enter] (文字コード) C-x C-v [Enter]
    
代表的な文字コードは以下の通り
Table: 文字コード例
Code文字コード改行形式
euc-jp-unixEUC-JPUNIX
euc-jp-dosEUC-JPdos
euc-jp-macEUC-JPmac
shift_jis-unixshift-jisUNIX
shift_jis-dosshift-jisdos
shift-jis-macshift-jismac

文字コードを調べる (C-u C-x =)
調べたい文字にカーソルを合わせて C-u C-x = を指定すると下記のように表示される
UTF-8 の "あ" (0xE3 0x81 0x82) を調べた結果は次の通り
 character: あ (53794, #o151042, #xd222, U+3042)
 charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87.)
 code point: #x24 #x22
 syntax: w which means: word
 category: H:Japanese Hiragana characters of 2-byte character sets j:Japanese
        |:While filling, we can break a line at this character.
 Properties: katakana: 53922; jisx0201: 3249;
buffer code: #x92 #xA4 #xA2
 file code: #xE3 #x81 #x82 (encoded by coding system utf-8-dos)
 display: by this font (glyph code)
 -outline-さざなみゴシック-medium-r-normal-normal-12-90-96-96-c-*-jisx0208-sjis (#x3042)
SJIS の "あ" (0x82 0xA0) を調べた結果は以下の通り
character: あ (53794, #o151042, #xd222, U+3042)
 charset: japanese-jisx0208 (JISX0208.1983/1990 Japanese Kanji: ISO-IR-87.)
 code point: #x24 #x22
 syntax: w which means: word
 category: H:Japanese Hiragana characters of 2-byte character sets j:Japanese
        |:While filling, we can break a line at this character.
 Properties: katakana: 53922; jisx0201: 3249;
buffer code: #x92 #xA4 #xA2
 file code: #x82 #xA0 (encoded by coding system sjis-dos)
 display: by this font (glyph code)
 -outline-さざなみゴシック-medium-r-normal-normal-12-90-96-96-c-*-jisx0208-sjis (#x3042)

encode-coding-string
encode-coding-string STRING CODING-SYSTEM &optional NOCOPY BUFFER
encode-coding-string は STRING に渡した文字列を指定した文字コードのバイト列に変換する (8 進数表記なので注意)
  • sjis の "あ", 返値の 16 進数表記は 0x82 0xA0)
    (encode-coding-string "あ" 'sjis-dos)
    "\202\240"
    
  • utf-8 の "あ", 返値の 16 進数表記は 0xE3 0x81 0x82
    (encode-coding-string "あ" 'utf-8-dos)
    "\343\201\202"
    

decode-coding-string
decode-coding-string STRING CODING-SYSTEM &optional NOCOPY BUFFER
decode-coding-string は STRING に渡したバイト列を指定した文字列に変換する
STRING には 16 進数, 8 進数のどちらでも指定可能
(decode-coding-string "\x82\xa0" 'sjis-dos)
"あ"
(decode-coding-string "\202\240" 'sjis-dos)
"あ"

0 件のコメント:

コメントを投稿