標題のとおりです。
ucs2からutf8への変換するためには、どのようにしたらよいでしょうか?
宜しくお願いします。
こんにちは。
procedure TForm1.Button1Click(Sender: TObject);
var
W: WideString;
U8: UTF8String;
begin
W := 'こんにちは'; // UCS2 (UTF-16LE BMP)
U8 := Utf8Encode(W); // UCS2 -> UTF-8
ShowMessage(U8); // UTF-8 なので化けて見えると思います
end;
# Delphi 2007 の UTF8String は D2009 以降で言う所の
# RawByteString や TBytes のような扱いになります。
ファイル出力でしたら、先頭に BOM (#$FE#$FF) を付けて書き出せば OK です。UCS2 のファイル入力は WideStrings.TWideStringList を使えば簡単に読み込めます。
WideStrings / WideStrUtils には、UCS2 (WideString) や UTF8 を扱う関数がイロイロあります。
お返事ありがとうございます。
上記を試してみるかつ、関数等ももっと確認してみたいと思います。
> 先頭に BOM (#$FE#$FF) を付けて
これは WideString の時に付けておきます。
UTF-8 変換後に BOM を付けるなら #$EF#$BB#$BF です。
ツイート | ![]() |