Вопрос

Согласно MSDN VB.net использует этот расширенный набор символов. Анкет По моему опыту, это на самом деле использует это:

alt text

  1. Что мне не хватает? Почему он говорит, что использует один и использует другой?
  2. Я делаю что-то неправильно?
  3. Есть ли какой -то инструмент преобразования в исходный набор символов?
Это было полезно?

Решение

Это поведение определено в документации Chr командование:

Возвращенное значение зависит от кодовой страницы для текущего потока, который содержится в свойстве ANSICodePage класса TextInfo в пространстве имен Globalization. Вы можете получить ansicodepage, указав System.globalization.cultureinfo.currentculture.textinfo.ansicodepage.

Итак, вывод Chr Для значений более 127 зависят от системы. Если вы хотите воспроизводимых результатов, создайте желаемый экземпляр Encoding позвонив Encoding.getEncoding (String), затем использовать Encoding.getChars (byte ()) Чтобы преобразовать свои числовые значения в символы.

если ты подняться на один уровень В таблице, связанной с вашим вопросом, вы увидите, что они не утверждают, что эта диаграмма всегда является результатом Chr Команда:

Символы, которые появляются в Windows выше 127, зависят от выбранного шрифта.

Диаграммы в этом разделе показывают набор символов по умолчанию для приложения консоли.

Ваше приложение является приложением Winform, а не приложением консоли. Даже в консоли используемый набор символов может быть изменен (например, с помощью chcp Команда), следовательно, слово «по умолчанию».

Для получения подробной информации о кодировках, используемых в .net, я рекомендую следующую статью MSDN: Кодирование символов в .NET Framework.

Другие советы

Первый набор символов-это кодовая страница 437 (CP437), вторая выглядит как кодовая страница 1252 (CP1252), также известная как Windows Latin-1.

Я предполагаю, что vb.net просто поднимает кодирование по умолчанию для ПК.

Как вы все это написали? Потому что, как правило, когда вы используете функцию выходного потока, вы можете указать с ней кодирование.

РЕДАКТИРОВАТЬ: Я знаю, что это не C#, но вы можете увидеть эту идею ...

Вам придется установить кодирование вашего FileStream, сделав что -то подобное:Установка кодирования при создании FileStream

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top