提问人:gcdev 提问时间:3/28/2012 更新时间:8/24/2017 访问量:2924
通过 SQL Express 在 MS SQL 中存储中文、韩文、英文等
Storing Chinese, Korean, English, etc in MS SQL through SQL Express
问:
我正在使用 MS SQL 2008 Express 连接到我拥有数据库的共享 MS SQL 2008 服务器。数据库的默认排序规则当前为 。最终,我想在数据库中存储英语、韩语、中文和任何其他可以想象的语言。我首先使用以下 SQL 代码(我在这里找到:http://social.msdn.microsoft.com/Forums/en-US/transactsql/thread/5d2ea1a2-32e1-4a82-b6e3-17d2b898babc/)来测试:SQL_Latin1_General_CP1_CI_AS
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 中运行此代码时,结果仅显示几个薄框。如果我复制一组薄框并将它们粘贴到此处(堆栈溢出提问文本区域),它们将显示为适当的字符(我在这里:空炮鸡蛋)。是否可以将 MS SQL 2008 Express 设置为正确显示它们?
更重要的是,当我运行我的PHP网站时,最终应该向公众正确显示字符,我只得到问号(????)。我正在用于查询数据库。我的 HTML5 HEAD 顶部有以下代码:mssql_query()
<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中正确显示此显示?
提前致谢!
答:
我在使用重音字符(???)时在我的应用程序中遇到了同样的问题,我通过将数据库、表和文本字段的编码更改为 utf8_unicode_ci以及文件编码来解决它。如果您在实时服务器上工作,请在转换前备份数据库。此外,在更新表和字段排序规则之前,将文本字段数据存储到 Blob。
希望对你有所帮助!
评论
我有类似的要求,我能够解决这个问题,并且能够显示韩语和日语 [SQL Server 2008 R2 Express 和 HTML + ASP.NET]
对于 SQL Server 中的数据库排序规则,请使用 SQL_Latin1_General_CP1_CI_AS
在服务器/计算机上部署代码时 - 确保 HTML 文件保存为 UTF-8 编码 (要检查这一点 - 打开文件>另存为>检查编码)
评论