【ITエンジニア】文字コードについて調べてみる
こんにちは、エンジニア教育のスクータムです。
生徒さんが入ってきまして、色々と教えている最中なのですが…
そういえば、文字コードは盲点になりやすいなあ、と気づきました。
知っていそうで知らない文字コードについて、改めて調べてみることにしました。
文字コードとは
書籍とかは持っていないので、こういった規格を定めている組織などを調べてみました。
いつものとほほシリーズ。かなり色々と書いているので、ここから調査開始。
色々あるのだが、全部見ていると大変なので、いつもお世話になっているUTF-8について調べてみることに。
まず、前提として、UTF-8などの符号方式をまとめる体系として、Unicodeがあるとのこと。それらをまとめる組織として、ユニコードコンソーシアムがるとのこと。
まずはUnicodeについて。
同時にISOの規格も満たせるとのこと、全然知らなかった…
Unicodeはとりあえずわかったので、UTF-8を見てみます。
どうも厳密な仕様が見つからず…(有識者がいれば教えてください)
妥協してWikipediaを見ました。
まあ、こんな体系があるのだな…くらいの認識です。
(よく使うのですが、なぜよく使うのかまできちんと理解しきれず…有識者の知見求む)
文字コードがらみのトラブル
マルチバイト文字が扱えなかった
よくあるトラブルがマルチバイト文字…特に、非常用漢字だと思います。
非常用漢字だと4byteつかうことがあり、対応していないミドルウェアでエラーが起きてしまいます。
(肝心のミドルウェアの文字コードを失念)
筆者が経験したのは、このケースでした。
あとは、ファイルインポート機能を提供すると、shift JISでインポートしてエラーが起こるなど。この場合は、ファイルの文字コード変換をアプリケーションでやってあげる必要があります。
対応(体験談)
普段のテキストエディタでは当然のようにUTF-8にしています。gitとかで統一とかできるんでしょうか?改行コードは検証できたような記憶があるのですが…
あとは、当然ながら異常系のロギングをきちんと取っておくこと!!
「文字コードによるエラーなら、常用漢字で対応すればいい」となりますので。
文字コードの対応は横断的な関心ごとなので、いいタイミングで共通モジュールを持っておくといい印象です。
ベストな対応はなんだろう?
ざっと調べて見たのですが、良き記事が見つからず。
こちらをあとでなんとなく見てみようかなと思いました。
私が遭遇した文字コードにまつわる7つの迷信 #新人プログラマ応援 - Qiita
まとめ
文字コードにまつわる処理をまとめてみました。
ちょっとまだ理解があいまいなので、また今度さらに調べるかもしれません。
宣伝
エンジニア向けの教育を提供しています!
クラウドエンジニア
Webエンジニア
に関心があれば、お問いあわせください!
サポートいただけますと幸いです。さらなる励みにして精進します。