Как я могу отобразить строки Unicode при отладке на Linux?

Или можно сделать это с Изолятором Typemock без потребности отправить в поддельном контроллере вообще:

Isolate.WhenCalled(()=>HttpContext.Request.HttpMethod).WillReturn("Get");
5
задан user209210 12 November 2009 в 11:21
поделиться

2 ответа

Большинство дистрибутивов Linux имеют отличную поддержку Unicode. Однако я бы сказал, что использование UTF16 в Linux - ошибка. Я понимаю, что это было бы естественно, исходить из среды Windows, но это только усложнит вам задачу в Linux.

Пока ваш языковой стандарт установлен на Unicode, тривиально выводить строки UTF-32 (строки wchar_t) с помощью wprintf или wcout , и, конечно, вы можете выводить UTF -8 строк с использованием обычных средств вывода. Однако с UTF-16 вы по существу ограничены созданием собственного строкового класса, использующего int16_t , который, как вы обнаружили, будет сложно распечатать в отладчике.

Вы упомянули. что вы создали функцию, которая переводит UTF-16 в UTF-8 для целей отладки, но символы переменной длины затрудняют работу с ними. Почему бы просто не создать функцию, которая переводит UTF16 в UTF32, чтобы каждая кодовая точка Unicode состояла из одного символа? Таким образом, вы можете использовать вывод широких символов для чтения строк. GDB не позволяет вам выводить строки расширенных символов по умолчанию, но вы можете исправить это, используя этот простой скрипт .

3
ответ дан 14 December 2019 в 13:39
поделиться

Полагаю, вы под X? Установлены ли правильные шрифты?

Используете ли вы фреймбуфер в качестве оконечного устройства на консоли? Текстовый режим VGA может отображать не более 256/512 символов. (случай 512 iirc съедает немного цветового пространства)

0
ответ дан 14 December 2019 в 13:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: