RichTextBox использовать для извлечения свойства текста в C ++ - PullRequest
1 голос
/ 28 ноября 2009

Я использую скрытый RichTextBox для извлечения свойства Text из RichEditCtrl. rtb-> Текст ; возвращает текстовую часть либо английского из национального языков - просто отлично!

Но мне нужен этот текст в \ u12232? \ U32232? вместо национальных символов и символов. работать с моим БД и RichEditCtrl. Любая идея, как добраться от « пассажирским поездом Невский » до « \ u12415? \ U12395? \ U20219? \ U30456? \ U35527? \ U21729? (где каждый национальный символ представлен как «\ u23232?»

Если у вас есть, это было бы здорово. Я использую Visual Studio 2008 C ++ комбинацию MFC и управляемого кода.

ура и хороших выходных

Ответы [ 2 ]

0 голосов
/ 28 ноября 2009

Вам не нужно использовать экранирование, чтобы поместить отформатированный Unicode в элемент управления RichText. Вы можете использовать UTF-8. Смотрите мой ответ здесь: Текст RTF Unicode в RichEdit .

Я не уверен, какие у вас ограничения на вашу базу данных, но, возможно, вы тоже можете использовать там UTF-8.

0 голосов
/ 28 ноября 2009

Если вам нужен System::String в качестве вывода, то что-то вроде этого будет делать:

String^ s = rtb->Text;
StringBuilder^ sb = gcnew StringBuilder(s->Length);
for (int i = 0; i < s->Length; ++i) {
    sb->AppendFormat("\u{0:D5}?", (int)s[i]);
}
String^ result = s->ToString();

Кстати, вы уверены, что формат соответствует описанному? \u - это традиционная последовательность Escape для шестнадцатеричного кода Unicode, ровно 4 шестнадцатеричных числа, например \u0F3A. Это также обычно не сопровождается ?. Если вы действительно этого хотите, спецификатор формата {0:X4} должен помочь.

...