文字コード は、「あ」や「A」といった文字を、コンピュータが扱える 数字(2進数)に対応づける取り決め です。コンピュータは文字を直接は理解できないため、「この番号はこの文字」という共通の対応表が必要になります。
歴史的にいろいろな方式が作られましたが、現在の主流は世界中の文字を1つの体系で扱える UTF-8 です。日本語向けには Shift_JIS や EUC-JP といった古い方式もあり、これらが混在すると問題が起きます。
書き込む側と読み取る側で文字コードが食い違うと、文字が意味不明な記号に化ける 文字化け が発生します。
flowchart LR T["文字:あ"] -->|"UTF-8で符号化"| B["数値の並び"] B -->|"UTF-8で復号"| OK["あ(正しい)"] B -->|"別のコードで復号"| NG["文字化け"]
トラブルを避けるコツはシンプルで、新しく作るファイルやWebページは UTF-8 にそろえる ことです。