Что такое родная узкая строковая кодировка в Windows? - PullRequest
8 голосов
/ 10 января 2011

Subversion API имеет количество функций для преобразования строк с «естественным кодированием» в строки, закодированные в UTF-8.Мой вопрос: что это за нативная кодировка в Windows?Это зависит от локали?

Ответы [ 4 ]

8 голосов
/ 10 января 2011

«Нативно закодированные» строки - это строки, записанные в любой кодовой странице , которую использует пользователь. То есть это числа, которые переводятся в соответствующие символы на основе правильной кодовой страницы. Предполагая, что файл был сохранен таким образом, а не как файл UTF-8.

Это вопрос кандидата для статьи Джоэла по Unicode .

В частности:

В конце концов, этот OEM-продукт для всех кодифицировано в стандарте ANSI. в Стандарт ANSI, все согласились что делать ниже 128, что было довольно почти так же, как ASCII, но были много разных способов справиться с символы от 128 и выше, в зависимости от того, где вы жили. Эти разные системы назывались кодом страницы. Так например в Израиле DOS использовал кодовую страницу под названием 862, в то время как Греческие пользователи использовали 737. Они были то же самое ниже 128, но отличается от 128 вверх, где все смешные буквы проживал. Национальные версии MS-DOS имел десятки этих кодовых страниц, обрабатывать все от английского до Исландский, и у них даже было несколько «многоязычные» кодовые страницы, которые могут сделать эсперанто и галисийский на одном компьютер! Вот Это Да! Но, скажем, Иврит и греческий на одном компьютере была полная невозможность, если Вы написали свою собственную программу, которая отображал все, используя растровые изображения графика, потому что иврит и греческий требуются разные кодовые страницы с разные интерпретации высокого число.

2 голосов
/ 10 января 2011

Из заголовка svn_string.h вы можете видеть, что соответствующие строки svn_string представляют собой просто старый const char * + элемент длины.

Я бы предположил, что "нативно закодированные" строки svn интерпретируются в соответствии с вашей системной локалью (я не знаю это точно, но это соглашение).В Windows 7 вы можете проверить свой языковой стандарт, выбрав «Пуск -> Панель управления -> Регион и язык -> Административный -> Изменить системный языковой стандарт», где любое значение английского языка, вероятно, повлечет за собой кодировку символов Windows 1252. Однакодругой языковой стандарт системы, например иврит (Израиль) , повлечет за собой другую кодировку символов (Windows 1255 для случая иврит).

2 голосов
/ 10 января 2011

Windows 1252 .У Юкки Корпела есть превосходная страница по кодировкам символов с подробным обсуждением набора символов Windows.

1 голос
/ 10 января 2011

К сожалению, версия библиотеки C для MSVC не поддерживает UTF-8 и использует только устаревшие кодовые страницы, но cygwin предоставляет языковой стандарт UTF-8 как часть уровня эмуляции. Если ваш svn построен на Cygwin, вы сможете нормально использовать UTF-8.

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