Прежде чем кто-либо порекомендует мне выполнить поиск в 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 полностью.
Почему это было отклонено? Вопрос был сформулирован не очень четко, но этот ответ мне кажется правильным.