HN305
UTF-8の解釈がコンパイラ間で割れる時:予期せぬバグを回避する
When Compilers Disagree About UTF‑8
rbanffy・5日前
When Compilers Disagree About UTF‑8
コンパイラによってUTF-8の扱いが異なる現象についての議論です。ソースコード内のエンコーディングや、コンパイル環境ごとの文字コード解釈の差異が原因で発生する不具合にどう対処すべきか、技術的な知見が共有されています。
SIMD命令を使えば、上位ビットがクリアされているバイトシーケンスを検出できるから、バイトごとのループ処理なしでASCIIテキストを一括コピーできるよ。もう一つの最適化として、コードポイントの使用傾向がその言語に固まるっていう性質を利用する手もある。例えば3バイトエンコーディングが使われているなら、ASCIIや絵文字を除けば、その後も3バイトのエンコーディングが続く可能性が高い。これを使えば、ステートマシンの構築においてさらに面白い工夫ができるはず。