電子メール クライアントのコンテキストでは、さまざまな文字セットと Unicode を相互に変換する必要があります。これまでのところ、Windows と Linux では、iconv を使用して文字セット間のテキスト変換を行ってきました。しかし、Mac で最初に試みた cp932 から utf-16 への変換は、大量のゴミ文字で失敗しました。私はグーグルを持っていて、setlocaleを使って最初にロケールを設定することを提案している人もいましたが、それは物事に影響を与えていないようでした.
Macでiconvを使用するべきではないのでしょうか?文字セット変換用の代替 API はありますか?
iconv コードの修正に関する提案も受け付けています...コードは基本的に次の行に沿っています。
setlocale(LC_ALL,"");
iconv_t Conv;
if ((Conv = libiconv_open("utf-16", "cp932")) >= 0)
{
// Convert
int s = libiconv(Conv, &InBuf, (size_t*)&InLen, &OutBuf, (size_t*)&OutLen);
libiconv_close(Conv);
}
Windows では同じ入力テキストが正常に機能しますが、Mac ではゴミが表示されます。