Хранение китайского, корейского, английского и т. Д. В MS SQL через SQL Express - PullRequest
8 голосов
/ 28 марта 2012

Я использую MS SQL 2008 Express для подключения к общему серверу MS SQL 2008, где у меня есть база данных.Сортировка по умолчанию для БД в настоящее время SQL_Latin1_General_CP1_CI_AS.В конечном счете, я хотел бы хранить английский, корейский, китайский и любой другой язык, который только можно себе представить, в БД.Я начал с использования следующего кода SQL (который я нашел здесь: http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/5d2ea1a2-32e1-4a82-b6e3-17d2b898babc/) для проверки:

create table zhongwen(mingzi nvarchar(10))
go
insert into zhongwen values (N'有方')
insert into zhongwen values (N'李杰')
insert into zhongwen values (N'空炮鸡蛋')
go
select * from zhongwen
go
create procedure zhongwenfind 
 (@mingzi nvarchar(10))
 AS
 SELECT mingzi FROM zhongwen 
 WHERE mingzi  = @mingzi  
go
exec zhongwenfind N'李杰'
go
drop table zhongwen
go
drop procedure zhongwenfind
go

Когда я запускаю этот код в MS SQL 2008 Express, отображаются результатытолько несколько тонких коробок. Если я скопирую набор тонких коробок и вставлю их сюда (переполнение стека задает вопрос textarea), они отображаются как правильные символы (здесь я иду: 空 炮 鸡蛋). Можно ли установитьMS SQL 2008 Express для правильного их отображения?

Гораздо важнее, что когда я запускаю свой PHP-сайт, который в конечном итоге должен правильно отображать символы, я получаю только вопросительные знаки (????).Я использую mssql_query() для запроса к БД. У меня есть следующий код в верхней части моей HTML5 HEAD:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

... и следующий код в моем PHP:

header('Content-Type:text/html; charset=UTF-8');

... но я вижу только вопросительные знаки. Итак, чтобы подвести итог, 2 вопроса:

1) Как правильно настроить отображение в MS SQL 2008 Express?

2) Как правильно настроить отображение в PHP / HTML?

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 24 августа 2017

У меня было похожее требование, я смог его решить и могу отображать корейский и японский [SQL Server 2008 R2 Express и HTML + ASP.NET]

  1. Для базы данныхДля сортировки в SQL Server используется SQL_Latin1_General_CP1_CI_AS

  2. При развертывании кода на сервере / компьютере - убедитесь, что файлы HTML сохранены как UTF-8 Кодировка (Чтобы проверить это - откройте файл> Сохранить как> проверьте кодировку)

0 голосов
/ 03 апреля 2012

У меня была та же проблема в моем приложении, при использовании акцентированных символов (получение ???), и я решил ее, изменив кодировку базы данных, таблиц и текстовых полей на utf8_unicode_ci вместе с кодировками файлов.Если вы работаете на работающем сервере, пожалуйста, сделайте резервную копию базы данных перед преобразованием.Кроме того, сохраняйте данные текстовых полей в BLOB-объектах перед обновлением таблицы и параметров сортировки полей.

Надеюсь, это поможет!

...