ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

𡈽の字はShift_JISでは保存できない?

Webのシステムで「𡈽」の文字が入力されました。
データベースにはUTF-8で保存されています。

ブラウザでも表示はUTF-8なので表示されます。
後処理のためにWebシステムからCSV形式でダウンロードする際、UTF-8からShift_JIS文字コードを変換して保存したところ、「𡈽」の文字が消えてしまいました。

「𡈽」は保存できないかもしれないけれど、「?」になるか文字化けして保存されるものだと思っていました。
「?」になるか文字化けして保存されるのであれば、データを見ればなにかあったというのがわかりますが、消えてしまうのでは気づくことができません。

データベースにUTF-8で保存されているので、UTF-8のままダウンロードする機能を追加しました。
テキストエディタであれば、UTF-8のままのファイルでも開けますが、Excelではそのままで開けず文字化けしてしまいます。

Excelで開くのであれば、データにテキストファイルというアイコンがあるので、ファイルを指定して読み込むときに文字コードを指定すれば読み込めます。

f:id:AJYA:20180406125337p:plain
unsplash-logoMaybritt Devriese

他にはないのか?

文字コードShift_JISでダウンロードしたファイルと、文字コードUTF-8でダウンロードしたファイルを比較してみました。
文字コードShift_JISでダウンロードしたファイルを、テキストエディタ文字コードUTF-8に変換して保存しなおし、同じ文字コードにしてから比較ツールで比較しました。
比較した結果、ウムラウト記号(ä、ö、üなど)が入力されていて、ウムラウト記号がShift_JISでは消えていました。
ウムラウト - Wikipedia


UTF-8がなんでも標準になってくれると、文字がなくなる、文字が化けるという現象が少しは減る気がしますが、なかなかならないですね。