「 文字コード を扱うときの鉄則5つ」—現場で役立つTips集

こんにちは、阿久梨絵です!
UTF-8にしておけば大丈夫
文字コード なんて気にしなくてもいい
そう思っていた矢先、突然の文字化け。メールが読めない、CSVが開けない、Webページが「アニメーション」になってしまう…。

文字コードは、“読めること”を支える技術の土台です。この記事では、現場で役立つ「文字コードの鉄則」を5つに絞って、やさしく解説いたします。
以下表記上、半角<は、全角<とします。

① 保存時に文字コードを明示する

ファイルを保存する際には、文字コードを明示的に指定することが基本です。
自動判定」に頼ってしまうと、環境によってShift_JISになったり、BOM付きUTF-8になったりして、文字化けの原因になります。

おすすめの設定

Webページ:UTF-8(BOMなし)+ <meta charset=”UTF-8″>
CSVファイル:UTF-8(BOMあり)で保存し、Excelとの互換性を確保
テキストファイル:UTF-8固定で保存

② 送受信時はContent-Typeヘッダーを確認する

メールやAPIなどで文字を送信する場合は、Content-Typeヘッダーで文字コードを明示することが重要です。

Content-Type: text/plain; charset=UTF-8

この指定がないと、受信側が「Shift_JISかな?」「ISO-8859-1かも?」と誤解してしまい、文字化けが発生する可能性があります。

補足

HTMLメールの場合は Content-Type: text/html; charset=UTF-8
JSON APIの場合は Content-Type: application/json; charset=UTF-8
サーバー側で明示的に設定することで、受信側の誤判定を防げます。

③ Excelで開くCSVは“罠”が多い

CSVファイルをUTF-8で保存しても、ExcelがShift_JISで開こうとして文字化けすることがあります。

対策方法

UTF-8(BOM付き)で保存する
Excelで「データのインポート」機能を使って開く
Webアプリ側でExcel形式(.xlsx)で出力する

④ データベースの文字コード設定を忘れない

データベースでは、テーブル単位・カラム単位で文字コードを設定する必要があります。
UTF-8で保存したつもりでも、DBの設定がLatin1になっていると「?」や空白になってしまいます

確認ポイント

MySQL:CHARACTER SET utf8mb4
PostgreSQL:ENCODING ‘UTF8’
SQLite:UTF-8固定(ただし入力元の文字コードに注意)

⑤ ログ・エラーメッセージも文字コードに注意する

ログ出力やエラーメッセージも、文字コードが合っていないと読めなくなります。
特に日本語を含む場合は、UTF-8で統一しておくと安心です。

サーバーログ:UTF-8で出力
CLIツール:端末の文字コードと合わせる(Windows環境ではShift_JISの可能性も)

まとめ

文字コード は、普段は意識されにくい技術ですが、“読める安心”を支える根幹の仕組みです。
ちょっとした設定ミスが、ユーザーの不安や誤解につながることもあります。
特にメールやAPIなど、人やシステムをまたぐ場面では、Content-Typeヘッダーでの明示が欠かせません。

現場では、「文字コードなんて気にしなくていい」と思わずに、意図的に・丁寧に扱うことが、信頼される情報設計につながります。
「読めること」は、技術者としてのやさしさの証でもありますね。
阿久梨絵でした!

上部へスクロール
Verified by MonsterInsights