UTF-8 £ знак не отображается правильно - PullRequest
0 голосов
/ 21 декабря 2009

HTML хранится в БД. Знак £ хранится как £ и корректно отображается в 1252 году, однако, когда я изменяю кодировку страницы на utf-8, неправильно отображается?

Я знаю, это простая проблема ..?

Ответы [ 8 ]

1 голос
/ 21 декабря 2009

Если ваша кодировка базы данных не UTF-8, или если приложение не извлекает данные из базы данных как UTF-8, данные, хранящиеся в базе данных, не будут правильно отображаться. Что такое база данных, какая платформа вашего приложения?

0 голосов
/ 10 января 2010

Вы сохранили символы в Unicode в БД?

при вставке данных Unicode в поля nvarchar всегда перед строкой указывается N, как в insert into table (stringfieldname) values (N'data to be inserted'), что обеспечит правильное хранение данных ...

0 голосов
/ 23 декабря 2009

Что необходимо сделать для правильного использования UTF-8 в ASP.

  • Ваша страница должна быть сохранена как UTF-8 (если она содержит символы не ASCII).
  • Любой серверный скрипт должен содержать только символы ASCII
  • Ваша страница должна начинаться со строки <%@ codepage=65001 %>
  • Ваш серверный скрипт должен сделать это: - Response.CharSet = "UTF-8"

Тем не менее, я настоятельно рекомендую не хранить HTML в БД, если вы действительно не создаете какую-то CMS и / или не используете некоторые строгие процедуры проверки.

Полагаю, вы забыли сделать одно из последних двух пунктов.

0 голосов
/ 22 декабря 2009

Какую последовательность сортировки использует ваш SQL Server для столбца и какая кодовая страница используется в системе? Он преобразует входящие данные во что-то, что может быть сохранено в наборе символов , , и это может быть недопустимо для того, что вы хотите получить обратно. Продукт моей компании случайно перевел «ü» в «÷», пока мы не исправили это.

0 голосов
/ 22 декабря 2009

Я не уверен, что классический ASP использует UTF8 в качестве строкового типа по умолчанию (как это делает .net), поэтому вы можете просто изменить страницу на ISO-8859-1, и она будет работать.

0 голосов
/ 21 декабря 2009

Этот поток переполнения стека описывает, как использовать UTF-8 + MySQL + PHP: Стратегия поддержки юникода и мультиязычности в PHP5

Кроме того, убедитесь, что вы используете правильные htmlentities() параметры при работе со строками UTF-8.

Обновление: Я только что заметил, что вы обновили свой пост (теги), чтобы показать, что вы используете ASP (не PHP), но я думаю, что ответ все еще идет. Убедитесь, что для таблиц и полей базы данных, а также для соединения с этой базой данных установлено UTF-8, и убедитесь, что вы правильно обрабатываете строки UTF-8 в своем приложении.

0 голосов
/ 21 декабря 2009

Вы можете заменить на:

&#163; or &pound;

http://www.w3schools.com/tags/ref_entities.asp

Также убедитесь, что вы установили кодировку и кодировку в utf-8.

http://www.utf8.com/

0 голосов
/ 21 декабря 2009

Необходимо убедиться, что и сервер БД, и соединение с ним поддерживают UTF8. Какую БД и веб-сервер вы используете?

...