Каков наилучший способ хранения датских букв в базе данных SQL Server?

Я работаю на большом веб-сайте на сервере Linux (PHP) и с базой данных SQL Server.
База данных SQL Server использует параметры сортировки SQL_Latin1_General_CP1_CI_AS,

У меня есть стол (давайте назовем это table1), в котором хранится много адресов, которые выбираются из nominatim через PHP-скрипт (script1) и хранятся в таблице1. Кажется, формат адресов — HTML. Датские буквы (æøå) выглядят хорошо на веб-сайте при выборе из table1,

Однако я сделал PHP-скрипт (script2), который выбирает эти адреса и помещает их в другую таблицу (table2) на том же MS SQL Server (по-прежнему сопоставление SQL_Latin1_General_CP1_CI_AS). Но датские буквы выглядят странно на сайте при выборе из table2, Когда script1 получает адреса от nominatim, он находится в формате JSON, который впоследствии декодируется.

$addressdetails = json_decode ( $addressdetails, true );

Никакого другого кодирования или декодирования здесь не производится.

Следующее может также помочь. Когда я бегу phpinfo() Я вижу, что сервер имеет следующие настройки:

PHP version 5.3.3
content type: text/html; charset=UTF-8

Как лучше всего обрабатывать буквы в PHP и SQL Server, чтобы датские и другие специальные буквы отображались правильно на любой платформе?

2

Решение

Похоже, что таблица1 содержит адресные данные в NVARCHAR типизированный столбец, тогда как таблица2 содержит адресные данные в VARCHAR типизированный столбец. NVARCHAR с удовольствием справится с ошибкой, но VARCHAR с сопоставлением SQL_Latin1_General_CP1_CI_AS не сможет.

Если обе таблицы являются используя NVARCHAR для хранения данных, убедитесь, что они не преобразуются в VARCHAR в любой точке между таблицами table1 и table2, например, параметром хранимой процедуры VARCHAR.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector