Как написать и реализовать свою собственную функцию [закрыто]

Итак, в чем проблема,

blockquote>

Это символ ( RIGHT SINGLE QUOTATION MARK - U + 2019), который был закодирован как CP-1252 вместо UTF-8 . Если вы проверите таблицу encodings , вы увидите, что этот символ находится в UTF-8, состоящий из байтов 0xE2, 0x80 и 0x99. Если вы проверите макет кодовой страницы CP-1252 , вы увидите, что каждый из этих байтов обозначает отдельные символы â, и .

и как его исправить?

blockquote>

Используйте UTF-8 вместо CP-1252 для чтения, записи, сохранения и отображения символов.


У меня есть Content-Type, установленный в UTF-8 как в моем теге , так и в моих HTTP-заголовках:


blockquote>

Это только инструктирует клиент, кодирование которого используется для интерпретации и отображения символов. Это не дает указания вашей собственной программе, которую кодировка должна использовать для чтения, записи, хранения и отображения символов. Точный ответ зависит от используемой серверной платформы / базы данных / языка программирования. Обратите внимание, что тот, который установлен в заголовке ответа HTTP, имеет приоритет над метатегами HTML. Метатег HTML будет использоваться только тогда, когда страница будет открыта из локальной файловой системы диска, а не из HTTP.


Кроме того, мой браузер настроен на Unicode (UTF-8):

blockquote>

Это только заставляет клиента кодирование использовать для интерпретации и отображения символов. Но актуальной проблемой является то, что вы уже отправили ’ (закодированный в UTF-8) клиенту вместо . Клиент правильно отображает ’, используя кодировку UTF-8. Если клиент был неправильно проинсталлирован для использования, например, ISO-8859-1, скорее всего, вы видели ââ¬â¢.


Я использую ASP.NET 2.0 с базой данных.

blockquote>

Это наиболее вероятно, где ваша проблема. Вы должны проверить с помощью независимого инструмента базы данных, как выглядят данные.

Если присутствует символ , значит, вы неправильно подключаетесь к базе данных. Вы должны указать соединителю базы данных, чтобы использовать UTF-8.

Если ваша база данных содержит ’, значит, ваша база данных испорчена. Скорее всего, таблицы не настроены на использование UTF-8. Вместо этого они используют кодировку по умолчанию для базы данных, которая зависит от конфигурации. Если это ваша проблема, достаточно просто изменить таблицу для использования UTF-8. Если ваша база данных не поддерживает это, вам нужно будет воссоздать таблицы. Хорошая практика - установить кодировку таблицы при ее создании.

Скорее всего, вы используете SQL Server, но здесь есть код MySQL (скопированный из этой статьи ):

CREATE DATABASE db_name CHARACTER SET utf8;
CREATE TABLE tbl_name (...) CHARACTER SET utf8;

Если ваша таблица, однако, уже UTF-8, вам нужно сделать шаг назад. Кто или , что поместил там данные. Это , где проблема. Одним из примеров может служить формат HTML, который неправильно кодирован / декодирован.


Вот еще несколько ссылок, чтобы узнать больше о проблеме:

-9
задан Joe 26 September 2014 в 16:39
поделиться