2009-02-17 2 views
3

прочитать файл, который имеет utf8 символы, как это:Как писать файлы с (читаемыми) символами 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 

И читает его прекрасно (это показано в EditBox при запуске программы):

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 ? ?? ??" 

вопрос в том, как я пишу результат (тот, что я могу видеть в управлении программы) в файле?

Я использую C язык на CodeGear C++ Builder

Решенные благодаря Кристофу и 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

Если некоторые ответы вам помогли, было бы неплохо, если бы вы проголосовали за них и приняли – jpalecek

ответ

2

Я не знаю, рамки, но если вы используете UTF8Decode() после чтения файла, не следует использовать UTF8Encode(), прежде чем писать?

+0

спасибо за ваш ответ – Nek

Смежные вопросы