Кодовые страницы и кодировки

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
611
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

У Джоэла есть хорошее резюме:
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 полностью.

Почему это было отклонено? Вопрос был сформулирован не очень четко, но этот ответ мне кажется правильным.

Alan Moore 06.11.2008 22:42

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