LoginSignup
7
3

More than 5 years have passed since last update.

文字コードの変換処理

Last updated at Posted at 2017-09-13

初投稿なので簡素な記事を書きます。

ファイルの文字コードをnkfコマンドで変換し、
Linux上で正常にファイル閲覧できるようにします。

実施環境

・OSはLinux Mint15を利用して実施しています。
・以下の国土交通省サイトからダウンロードできるCSVファイルを使用します。

  歩行空間ネットワークデータ等(渋谷地区)

手順

1.CSVファイルをLinuxサーバ上にダウンロード

上記サイトからfacility.csvをダウンロードします。
歩行空間ネットワークデータ(csv形式)という欄です。

2.該当ファイルの中身をheadコマンド等で確認

以下のコマンドをCUI画面上で実行します。
実行する際は相対パスもしくは絶対パスでの指定をします。

$ head facility.csv

すると以下のような文字化けしたデータが表示されます。

user@servername ~/ダウンロード/65/177 $ head facility.csv
facil_id,facil_type,evacuation,temporary,name_ja,name_en,address,tel,lat,lon,floors,toilet,elevator,escalator,parking,barrier,nursing,brail_tile,info,info_board
00001B000000000309CB7D265EB2FFC1,1,0,0,�a�J����X�֋�,99,�����s�a�J�����1-21-1,03-3461-9919,35.662071,139.700606,1,0,0,0,0,0,0,0,1,0

3.文字コード設定の確認

続けて以下のコマンドを実行してLinuxでの文字コード設定を確認します。
現在の設定はUTF-8と表示されます。

$ env | grep LANG
LANG=ja_JP.UTF-8

4.nkfコマンドでCSVファイルの文字コード確認

nkfコマンドのgオプションを使用してCSVファイルの文字コードを確認します。
Shift_JISと表示され、Linux上の設定と異なっているために文字化けしていることがわかります。

$ nkf -g facility.csv
Shift_JIS

補足:Homebrewを利用する

nkfが使用できなかった場合は以下のコマンドでHomebrewでnkfコマンドをインストールします。

$ brew install nkf

インストール後に再度gオプションで文字コード確認をします。

5.文字コードの変換

nkfコマンドのwオプションでCSVファイルの文字コードをUTF-8に変換します。
その後再度gオプションで文字コード設定が変換できているか確認します。

$ nkf -w facility.csv > facility_Utf8.csv
$ nkf -g facility_Utf8.csv
UTF-8

以上の手順後、変換したfacility_Utf8.csvをhead等で閲覧すると文字化けが直っています。

user@servername ~/ダウンロード/65/177 $ head facility_Utf8.csv
facil_id,facil_type,evacuation,temporary,name_ja,name_en,address,tel,lat,lon,floors,toilet,elevator,escalator,parking,barrier,nursing,brail_tile,info,info_board
00001B000000000309CB7D265EB2FFC1,1,0,0,渋谷神南郵便局,99,東京都渋谷区神南1-21-1,03-3461-9919,35.662071,139.700606,1,0,0,0,0,0,0,0,1,0
00001B000000000309CBAC265E6E7FC1,1,0,0,放送センター内郵便局,99,東京都渋谷区神南2-2-1,03-3467-0475,35.664682,139.696801,1,0,0,0,0,1,0,0,1,0
00001B000000000309CBE9A65DFB7FC1,1,0,0,渋谷富ケ谷一郵便局,99,東京都渋谷区富ヶ谷1-9-17,03-3467

まとめ

文字化けのトラブルはWindowsやLinuxなどの複合環境や
外国語対応したアプリケーションのCSVデータを取り扱う際に
よく出会ってしまいますので、知っておくと便利です。

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3