Какую кодировку использует System.Windows.Forms.RichTextBox для символов Юникода? - PullRequest
1 голос
/ 10 февраля 2010

В моем приложении есть WinForms RichTextBox. Когда я ввожу китайский текст "蜜 蜜 蜜 蜜", элемент управления использует следующий RTF:

{\ rtf1 \ ansi \ ansicpg1252 \ deff0 \ deflang1033 {\ fonttbl {\ f0 \ fmodern \ fprq6 \ fcharset134 SimSun;} {\ f1 \ fnil \ fcharset0 Microsoft Sans Serif;}} \ Viewkind4 \ uc1 \ пард \ f0 \ FS17 \ 'c3 \' дб \ 'c3 \' дб \ 'c3 \' дб \ 'c3 \' дб \ f1 \ п }

Тестовая строка является одним и тем же символом четыре раза. Это значение Unicode составляет 34588 (0x871C). Итак, как получается, что символ хранится в RTF как "\ 'c3 \' db"? Что это за кодировка?

1 Ответ

1 голос
/ 10 февраля 2010

RTF старый, старше чем Job и значительно предшествует Unicode. Я думаю, что он использует кодовую страницу 936 , двухбайтовый набор символов для упрощенного китайского языка. Ваш фрагмент показывает это с помощью c3db для символа, он соответствует глифу, показанному в этой таблице .

...