The Nameless City

何故か製薬やSAS関連のブログ、の予定。

Windows-1252にある文字のUTF-8に変換した時最大で3バイトになる。

タイトル通り。


いわゆるISO-8859-1、通称Latin-1というヤツであるが、これ、Windows上では拡張されWindows-1252というものになっている。
この拡張された部分に埋められた文字が、UTF-8では3バイトになるものがある。ダガーやダブルダガーとか。


shift_JISからだと、2バイト→最大4バイトでありcvpmultは2で十分なのだが、wlatin-1だとこれがcvpmult=3を設定しなければいけない。
大変残念である。
本来はlatin-1はUTF-8でも文字としてのバイトの中身が変わらんのだけど。大変残念である。
追加:latin-1かつ非ASCIIの場合には、UTF-8と解釈しようとしても上手くいかない。