Вопрос

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

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

Это было полезно?

Решение

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

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

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

Кодировка - это просто отображение между числовыми значениями и "символами".

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

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

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

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

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

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

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

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