Skip to main content

変換.文字コード変換(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

nkficonv を使う

雑多。。

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 とか