変換.文字コード変換(encode,decode)
Python
encode, decode
py
s.encode('shift_jis')
s.decode('utf-8')
雑多
py
文字コード変換
str_sjis = u'abcdefg'.encode('shift_jis') # => 'abcdefg'
str_utf8 = 'abcdefg'.decode('utf-8') # => u'abcdefg'
Bash
nkf
か iconv
を使う
雑多。。
txt
------------------------------
nkf : 漢字コードの変換をする
-e EUCコードを出力する。
-E 入力コードをEUCコードとする。
-j JISコードを出力する。
-J 入力コードをJISコードとする。
-s シフトJISコードを出力する。
-S 入力コードをシフトJISコードとする。
------------------------------
□ 文字コード関連(nkf, kcc, qkc, iconv)
・改行コードを変換したい
オプションで次のように指定
-L[wmu] 改行モード
-Lu unix (LF)
-Lw windows (CRLF)
-Lm mac (CR)
デフォルトは変換なしです。
・改行コードを変換したい
qkc -mu [スクリプト]
・文字コード変換 ※エンコーディング
変換前を大文字、変換後を小文字で指定する
nkf -Ew xxx.txt → EUCからUTF-8
e : EUC-JP
w : UTF-8
s : Shift_JIS
j : JIS (iso-2022-jp)
・どの文字コードで書かれているのかだけが知りたい
nkf --guess xxx.txt
・文字コードを判別する
kcc -c filename
・iconv
iconv -f Shift_JIS -t UTF-8 sjis.txt > utf-8.txt
sh
echo "日本語" | iconv -f UTF-8 -t ISO-2022-JP
echo "日本語" | iconv -f UTF-8 -t ISO-2022-JP | mail -s "hello, this is test" $mail_to -- -f $mail_from
bash
echo "日本語" | ruby -Ks -ne 'require "kconv"; print $_.tojis'
Ruby
rb
s.tosjis
雑多
rb
文字コード変換 (convert)
$KCODE = 'UTF8' # or EUC, SJIS, JIS, NONE
require 'kconv'
入力文字を自動判別する場合
str2 = str1.tojis
str2 = str1.toeuc
str2 = str1.tosjis
str2 = str1.toutf8
入力文字列の文字コードを明示的に指定する場合
str2 = str1.kconv(Kconv::SJIS, Kconv::EUC) # EUC→SJIS(逆に思いがちなので注意)
※ 他の書き方
str2 = Kconv::kconv(str1, Kconv::SJIS, Kconv::EUC) # Kconv の場合
str2 = NKF::nkf("-Es", str1) # NKF の場合
文字コード判別
Kconv.guess(file.read) # 戻り値は Kconv::SJISとか Kconv::UTF8 とか