3

我读了一个包含 utf8 字符的文件,如下所示:

FILE *FileIN,*FileOUT;
FileIN=fopen("filename","r");
char string[600];
WideChar C[600],S[100];
fgets(string,600,FileIN);
wcscpy(C,UTF8Decode(string).c_bstr()); // widechar copy

它读起来很完美(运行程序时在编辑框中显示):

Edit1->Text=C;

Result ===> "3021";"亜";"7";"ア アシア つ.ぐ T1 や つぎ つぐ"

问题是当我想在文件上写这个时:

FileOUT=fopen("txt.txt","w");    
fwrite(Edit8->Text.c_str(),strlen(Edit8->Text.c_str()),1,FileOUT);

Result ===> "3021";"?";"7";"? ??? ?.? T1 ? ?? ??"

问题是,我如何将结果(我可以在运行的程序中看到的那个)写入文件?

我在 CodeGear C++Builder 上使用 C 语言

感谢 Christoph 和 nobugz 的帮助解决了

我改变了这条线

fwrite(Edit8->Text.c_str(),strlen(Edit8->Text.c_str()),1,FileOUT);

到这个,它起作用了。谢谢

fwrite(UTF8Encode(Edit8->Text).c_str(),UTF8Encode(Edit8->Text).Length(),1,FileOUT);
4

1 回答 1

2

我不知道框架,但是如果你UTF8Decode()在阅读文件后使用,你不应该UTF8Encode()在写之前使用吗?

于 2009-02-17T15:48:28.177 回答