Кодовые страницы и кодировки - PullRequest
3 голосов
/ 03 ноября 2008

Прежде чем кто-либо порекомендует мне выполнить поиск Google по этому вопросу, у меня есть. Мне просто нужно немного больше понять, какие кодовые страницы и кодировки.

Если я использую кодировку UTF8 и использую итальянскую кодовую страницу, а затем французскую кодовую страницу, значит ли это, что я получу другие символы, даже если байты не изменились?

Ответы [ 3 ]

8 голосов
/ 03 ноября 2008

Джоэл имеет хорошее резюме этого:
http://www.joelonsoftware.com/articles/Unicode.html

И нет. если я правильно понимаю ваш вопрос, это не значит, что Когда вы конвертируете UTF-8 в определенную кодовую страницу, возможно, что будут конвертированы только некоторые символы. Что происходит с теми, кто не конвертируется, зависит от того, как вы называете конверсию. Возможный результат заключается в том, что символы, которые не удалось сопоставить с кодовой страницей, будут преобразованы в символы вопросительного знака.

5 голосов
/ 03 ноября 2008

Кодировка - это просто отображение числовых значений и «символов».

US-ASCII отображает число 65 на букву A, 32 на пробел и 49 на цифру "1". (Как эти вещи представлены - другое дело.) Фактически, UTF-8 делает то же самое! Но есть и другие значения, которые UTF-8 трактует иначе, чем ASCII. Это кодирование переменной длины, то есть символ может быть закодирован с 1, 2, 3 или 4 байтами; обычные символы обычно занимают меньше байтов.

Простые текстовые файлы, включая веб-страницы, хранятся и передаются в виде последовательности байтов. Эти байты должны представлять что-то текстовое. Программные приложения (такие как текстовые редакторы и веб-браузеры) отвечают за отображение информации в этих файлах на экране. Обычно они используют функции библиотеки или ОС.

Если программное обеспечение предполагает другую кодировку, чем программное обеспечение, создавшее файл, могут отображаться неправильные символы!

Обратите внимание, что возможно преобразование между различными кодировками; однако, если вы преобразуете кодировку, которая не содержит определенный символ, программное обеспечение должно сделать выбор относительно того, что использовать вместо этого. Это преобразование часто происходит прозрачно (когда вы сохраняете файл с определенной кодировкой, все, что вы ввели, должно быть заменено этой кодировкой).

0 голосов
/ 03 ноября 2008

UTF-8 включает в себя все символы из вашей французской и итальянской кодовой страницы, но языковые кодовые страницы не включают все символы друг друга.

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

Используйте UTF-8 полностью, если можете.

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