Форум — Ответы ( К темам )
? | S.A.M.: Проблема с кодировкой в RichEdit, вместо русского — китайский (24-03-2003 00:23:07) |
У меня программа достаточно многофункциональная, предостаточно форм налеплено, несколько Richedit-ов и т.д. Когда в процессе работы программы переключаешься между окнами и прочим, на RichEdit-е вместо русских слов возникают китайские письмена, т.е. проблема с кодировками, но в начале все нормально, обычная кириллица. Что делать? | |
Павел (24-03-2003 20:23:06) | |
Интересная проблема. А вместо русских слов возникают китайские письмена при вставке текста в RichEdit откуда либо, или сначала туда нормально вставляется и отражается русский текст, а потом этот текст сам перекодируется ? Интересно, а если посмотреть на свойство Font этого RichEdit-a void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1->Text = RichEdit1->Font->Name; } или попробовать в таком "китайском" состоянии что либо добавить (какой то текст) в этот RichEdit, каким шрифтом произойдет добавление - русским или китайским. И не может такое быть, что Вы откуда-либо копируете текст в DOS-кодировке, и вставляете его в этой кодировке в RichEdit Попробуйте его конвертнуть из Oem в Char: void __fastcall TForm1::Button2Click(TObject *Sender) { char buff[10000]; CharToOem(RichEdit1->Text.c_str(), buff); RichEdit1->Text = AnsiString(buff); } | |
S.A.M. (24-03-2003 21:25:35) | |
Текст сам перекодируется. Если что-нить добавляю на русском, то новый текст нормальный, а вот старый — иероглифы. В чем беда? Бред какой-то.
| |
Георгий (24-03-2003 23:09:49) | |
а Windows пробовал переустановить?
| |
Павел (25-03-2003 00:39:31) | |
1/ Ну а что дает конвертация из Oem в Char ? void __fastcall TForm1::Button2Click(TObject *Sender) { char buff[10000]; CharToOem(RichEdit1->Text.c_str(), buff); RichEdit1->Text = AnsiString(buff); } Преобразует в нормальный или нет, и 2/ Какой шрифт показывает Edit1->Text = RichEdit1->Font->Name; в случае c иероглифами ? | |
Георгий (25-03-2003 14:39:56) | |
Я что-то не понял — у S.A.M. вместо русского текста появляются настоящие китайские (японские) иероглифы или текст в DOS кодировке (CP 866?)? если иероглифы, то возможно ОС "глючит". если текст сам перекодируется в другую кодовую страницу, то ??? кстати OEMConvert, DefaultConverter чему равно? |