カテゴリ
HTML PostgreSQL linux

【シェルスクリプト】文字コード表示プログラム

変数「xxx」に入れた文字列を各文字コードに変換して表示する

#!/bin/bash

xxx=""
enc=("default" "UTF-8" "SHIFT-JIS" "EUC-JP" "ASCII")

display() {
        echo "String \"${1}\" in ${2}:"
        if [ "${2}" = "default" ]; then
                echo "${1}" | od -An -tx1
        else
                echo "${1}" | iconv -t "${2}" | od -An -tx1
        fi
        echo "--------------------"
}

for ((i = 0; i < "${#enc[@]}"; i++)); do
        display "${xxx}" "${enc[i]}"
done

実行結果

String "" in default:
 e3 81 82 0a
--------------------
String "" in UTF-8:
 e3 81 82 0a
--------------------
String "" in SHIFT-JIS:
 82 a0 0a
--------------------
String "" in EUC-JP:
 a4 a2 0a
--------------------
String "" in ASCII:
iconv: 位置 0 に不正な入力シーケンスがあります
--------------------

末尾の「0a」は改行コード「LF」を指す
if文内のehcoに「-n」オプションを付けることで非表示にできる

文字コード

UTF-8 https://seiai.ed.jp/sys/text/java/utf8table.html

Shift-JIS http://charset.7jp.net/sjis.html

EUC-JP http://charset.7jp.net/euc.html