我读了一个像这样的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);
答案 0 :(得分:2)
我不知道框架,但如果您在阅读文件后使用UTF8Decode()
,那么在写作之前不应该使用UTF8Encode()
吗?