Armadilloフォーラム

文字コードについて

dotsuru

2023年4月3日 13時16分

初歩的な質問で申しわけありません。
UTF-8のテキストファイルをcat や viで開くと文字化けしてしまいます。
テキストファイルの文字コードは"nkf -g hoge.txt"で確認し、UTF-8と表示されています。
やったことは、以下の2つです。
# export LANG=ja_JP.UTF-8 でLANGを設定 (envでLANGが設定されていることを確認)
# LANG=ja_JP.UTF-8 (echo $LANGで、ja_JP.UTF-8が表示されることを確認)

文字コード(UTF-8)の正しい設定方法を教えてください。

コメント

at_dominique.m…

2023年4月3日 14時58分

dotsuruさん、

お世話になっています、
アットマークテクノのマルティネです。

> UTF-8のテキストファイルをcat や viで開くと文字化けしてしまいます。
> テキストファイルの文字コードは"nkf -g hoge.txt"で確認し、UTF-8と表示されています。
> やったことは、以下の2つです。
> # export LANG=ja_JP.UTF-8 でLANGを設定 (envでLANGが設定されていることを確認)
> # LANG=ja_JP.UTF-8 (echo $LANGで、ja_JP.UTF-8が表示されることを確認)
>
> 文字コード(UTF-8)の正しい設定方法を教えてください。

文字コードは2ヶ所で設定しないといけません:

* LANG等、「locale」コマンドで表示されている環境変数で設定する。そこで設定することで、各プログラムが UTF-8 の出力します。
Armadillo IoT G3L のデフォルトは「C.UTF-8」になっているはずで、すでに UTF-8 コードで出力されるはずですが、「ja_JP.UTF-8」でもいいです。( デフォルトの /etc/locale.gen で有効になっていますので、使えるはずです)
ちなみに、cat の場合はただファイルの内容を表示するだけなので、関係ないですね。

* その出力をターミナルエミュレーターによって表示されますので、UTF-8かどうかをターミナルにも設定しないといけません。
そこはご使用のプログラムによりますが、 TeraTerm の場合はこのページを参考にできると思います: https://www.j-oosk.com/teraterm/mojibake/64/
別のターミナルの場合は似たような方法で文字コードを設定できると思いますが、みつからなかったら使っているプログラムを教えてこちらで確認します。

よろしくお願いします。