通过SQL Express在MS SQL中存储中文,韩文,英文等

时间:2012-03-28 00:17:09

标签: php sql-server-2008 utf-8 character-encoding collation

我正在使用MS SQL 2008 Express连接到我有数据库的共享MS SQL 2008服务器。 DB的默认排序规则目前为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');

...但我只看到问号。所以,总结一下,有两个问题:

1)如何在MS SQL 2008 Express中正确显示?

2)如何在PHP / HTML中正确显示?

提前致谢!

2 个答案:

答案 0 :(得分:0)

我的应用程序中有同样的问题,同时使用重音字符(获取???),我通过将数据库,表格和文本字段的编码更改为utf8_unicode_ci以及文件编码来解决它。如果您正在使用实时服务器,请在转换之前备份db。此外,在updatinng表和字段排序规则之前,将文本字段数据存储到blob。

希望它有所帮助!

答案 1 :(得分:0)

我有类似的要求,我能够解决这个问题,能够显示韩语和日语 [SQL Server 2008 R2 Express和HTML + ASP.NET]

  1. 对于SQL Server中的数据库归类,请使用 SQL_Latin1_General_CP1_CI_AS

  2. 在服务器/计算机上部署代码时 - 确保将HTML文件另存为 UTF-8 编码 (要检查此项 - 打开文件&gt;另存为&gt;检查编码)