エンディアン

マルチバイトデータのバイト順序。ビッグエンディアンとリトルエンディアンの 2 種類がある。

エンディアン (Endianness) とは、マルチバイトデータをメモリやファイルに格納する際のバイト順序です。上位バイトを先に格納するビッグエンディアン (BE) と、下位バイトを先に格納するリトルエンディアン (LE) の 2 種類があります。

UTF-16 エンコーディングでは、エンディアンの違いが文字化けの原因になります。BOM (Byte Order Mark, U+FEFF) をファイル先頭に配置することで、エンディアンを明示できます。コンピュータアーキテクチャの書籍で詳しく学べます。

x86/x64 プロセッサはリトルエンディアン、ネットワークプロトコル (TCP/IP) はビッグエンディアンを採用しています。ARM プロセッサはバイエンディアン (両方対応) です。

文字数カウントの観点では、エンディアンは文字のバイト表現に影響しますが、文字数自体は変わりません。ただし、バイト数カウントではエンディアンを考慮する必要があります。低レイヤプログラミングの書籍も参考になります。