присвоение китайского как DBCS - PullRequest
1 голос
/ 15 сентября 2011

В моем коде я могу сделать:

wchar_t * s = L "... некоторая китайская / японская / и т. Д. Строка ..";

и это работает хорошо. но если я сделаю:

char * s = "... некоторая китайская / японская / и т. Д. Строка ..."

Я в конечном итоге назначен на "???????" (не проблема с отображением, в значении есть реальные вопросительные знаки).

Учитывая, что я нахожусь в US / 1252 Win 7 (VS2010) и Unicode-скомпилированных приложениях, как мне создать китайскую строку MBCS с постоянным строковым литералом? Я не хочу, чтобы это был Unicode, а скорее представление китайских символов в MBCS.

Пока что единственный способ, которым я смог это сделать, - это использовать версию в юникоде и конвертировать ее в MBCS с помощью WideCharToMultiByte. Мне действительно нужно сделать это или ввести его как байтовый массив?

1 Ответ

1 голос
/ 15 сентября 2011

Да, вам действительно нужно это сделать. В C ++ нет строковых литералов MBCS.

(Теоретически вы можете сделать что-то вроде char * s = "... \ xa7 \ f6 \ d5 ..." с правильными байтами, но это было бы трудно писать и читать.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...