Символы, введенные от иностранных пользователей, отображаются как? - PullRequest
0 голосов
/ 01 июля 2011

Я работаю над сайтом, на котором есть пользователи из других стран. По большей части мы получаем текст на английском языке, но иногда люди используют специальные символы, такие как китайские символы или букву E с ударением. Эти символы отображаются как "?" когда показано на сайте.

На сайте есть объявление кодировки UTF-8, а полем базы данных SQL Server является Nvarchar. Я сделал тест, перейдя в Google translate и попросив его перевести «Доброе утро» на японский. Когда я скопировал полученный кандзи на свой сайт и сохранил сам, он работал нормально.

Что может быть причиной этой проблемы? Я предполагаю, что это потому, что текст вводится в кодировке, которая не является UTF-8. Будет ли принять-charset = "UTF-8" решить проблему? Если нет, что я могу сделать? Даже если нет способа исправить существующие неверные данные, могу ли я предотвратить эту проблему в будущем?

1 Ответ

0 голосов
/ 01 июля 2011

SQL Server 7.0 и SQL Server 2000 используют другая кодировка Unicode (UCS-2) и не признать UTF-8 действительным символьные данные.

См. Следующую статью базы знаний, посвященную хранению / извлечению данных utf-8 в базе данных MS SQL Server: http://support.microsoft.com/kb/232580

...