С# — В чем разница между Encoding.GetEncoding(1255) и Encoding.GetEncoding(1252)?
Задать вопрос
спросил
Изменено 2 года, 3 месяца назад
Просмотрено 28 тысяч раз
У меня есть программа на основе формы C#, и я использую
System.Text.Encoding.GetEncoding(1252)
, но у меня возникли проблемы с чтением неанглийских символов, я обнаружил
System. Text.Encoding.GetEncoding(1255)
работает, однако я не знаю последствий изменения этого, поэтому я надеюсь, что кто-то может пролить свет на разницу и возможные последствия.
- С#
- .net
- кодировка
Я рекомендую вам прочитать статью Джоэла Спольски «Абсолютный минимум, который каждый разработчик программного обеспечения обязательно должен знать о Unicode и наборах символов (без оправданий!)
0
При использовании GetEncoding(1252) вы указываете кодировку Windows-1252, которая указывает латинский алфавит для Западной Европы. GetEncoding(1255) — это кодировка Windows-1255, которая используется для записи на иврите.
Кодировка символов 1255 включает символы иврита, тогда как 1252 ориентирована на западные языки. Это тот случай, когда неанглийские символы являются ивритскими?
1
1252 — Windows-1252 Западноевропейская (Windows)
1255 — Windows-1255 Иврит (Windows)
источник: http://msdn.microsoft.com/en-us/library/system.text.encodinginfo.codepage .aspx
Ваша кодировка всегда должна совпадать с той, которая использовалась для создания файла. Если нет доступных метаданных (или человека), которые могли бы помочь в этом выборе, то единственное, что можно было бы сделать, — это попробовать каждый из них и посмотреть, какой из них разборчив. Поскольку это, по-видимому, на языке, который вы не знаете, вам может потребоваться спросить кого-то, кто говорит на этом языке, можно ли это прочитать. Вы знаете кого-нибудь, кто умеет читать на иврите?
Вероятно, вы захотите использовать одну из «именованных» кодировок Unicode, например, Encoding. UTF8
. Но, чтобы ответить на ваш вопрос, страница 1252 — это «Западноевропейская (Windows)», а 1255 — «Иврит (Windows)».
Если вы не знаете, кодовые страницы в значительной степени являются пережитком ASCII, и вы должны стараться придерживаться Unicode, где это возможно.
2
Зарегистрируйтесь или войдите в систему
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается