У меня проблема с локализацией.
Один из моих трудолюбивых сотрудников заменил все строки в нашем приложении константами, которые содержатся в словаре. В этот словарь помещаются различные строки, когда пользователь выбирает язык (по умолчанию английский, но целевыми языками являются немецкий, испанский, французский, португальский, мандаринский и тайский).
Для нашего тестирования этой функциональности мы хотели изменить кнопку, включив в нее текст, имеющий символ «-», который отображается как на испанском, так и на шрифте Arial Unicode MS (который мы используем в приложении).
Проблема в том, что символ отображается в виде квадратного блока, как будто программа не знает, как его отобразить. Когда я отлаживаю в этой конкретной строке, читаемой с диска, отладчик сообщает об этом символе также как квадратный блок.
Так где же сбой? Я думаю, что это может быть в нескольких местах:
1) Блокнот может не поддерживать Unicode, поэтому отображаемое здесь - не то, что ожидает vs2008, и поэтому программа интерпретирует символ как квадрат (РЕДАКТИРОВАТЬ: блокнот показывает те же символы, что и vs, т. Е. Они оба показывают н. в одном и том же месте.).
2) vs2008 не может справиться с. Мне очень, очень трудно в это поверить.
3) Текст читается правильно, но шрифт по умолчанию для vs2008 не может его отобразить, поэтому отладчик показывает квадрат.
4) Текст не читается должным образом, и я должен использовать что-то кроме обычного StreamReader для получения строк.
5) Текст читается правильно, но класс String по умолчанию в C # не обрабатывает - хорошо. Мне очень, очень трудно в это поверить.
6) Версии Arial Unicode MS у меня нет - несмотря на то, что она указана как один из символов 50k к http://www.fileinfo.info.
Что-нибудь еще, что я мог бы пропустить?
Спасибо за любую помощь!