0

Linux で iconv() を使用して、文字列が UTF-8 でエンコードされていることを検証するコードが少しあります。私が作成する変換は次のようになります。

iconv_t c = iconv_open("UTF-8","UTF-8");

次のように iconv() を実行します。

int status = iconv(c, &fromArray, (size_t*)&inSize, &toArray, (size_t*)&outSize);

status次に、 -1 でない場合、有効な UTF-8 を持つ文字列を取得します。

これは、32 ビット環境 (最初に開発およびテストされた場所) でコンパイルおよび正常に動作します。ただし、これを64ビット環境で機能させる必要があります(具体的には、Fedora 14の64ビットフレーバーだと思います)。これでコンパイルしてテストを実行すると、32ビットコンパイルが問題ないと言っている同じ文字列であっても、常にstatusエラーが発生します。-1EILSEQerrno

なぜこれが起こっているのか、誰にも考えがありますか?

4

1 に答える 1