从 SQL Server 2008 R2 检索多语言数据(中文、日文...)并在 Java webapp 中显示

Posted

技术标签:

【中文标题】从 SQL Server 2008 R2 检索多语言数据(中文、日文...)并在 Java webapp 中显示【英文标题】:Retrieve multilingual data (Chinese, Japanese...) from SQL Server 2008 R2 and display in Java webapp 【发布时间】:2012-10-10 01:37:37 【问题描述】:

我的数据库中有中文数据,我需要在我的 Java Web 应用程序中显示它。但是我得到 ??? 作为输出。

使用的数据库: SQL Server 2008 R2(nvarchar 数据类型用于支持 Unicode 数据,并使用默认排序规则名称创建 db,即 SQL_Latin1_General_CP1_CI_AS,并且在将数据存储在分贝)。

开发环境: Window 7

Treegrid 用于显示数据。

我已经:

1. set charset and pageEncoding to UTF-8  in my html, jsp and Java
pages.

2.  Updated my jdbc connection  with useUnicode=true;characterEncoding=UTF-8;.

3.  Configured Tomcat’s server.xml connector to use UTF-8 (URIEncoding="UTF-8").

我曾经将collation_name 设置为Latin1_General_CI_AI 仍然无法正常工作。

【问题讨论】:

【参考方案1】:

Latin1_General_CI_AI --> 有一部分是你的问题。 Latin1 与 Unicode 无关。得到“???”意味着您的工具链中的某个地方存在编码问题,您的 UTF-8 数据被打乱到另一种编码中。

【讨论】:

我看到一篇文章说sql server 2008 R2 通过提供nchar/nvarchar/ntext 数据类型来支持Unicode。但是它不支持对 unicode 数据进行 utf-8 编码,但是它支持 utf-16(因为它内部支持 UCS-2,并且 utf-16 和 ucs-2 的存储格式相似)。好吧 eclipse 不支持 ucs-2编码。这是否意味着我必须将我的 java webapp 编码转换为 utf-16?我什至尝试过使用 utf-16 格式,仍然???来了。 正如你所说,我的代码中存在一些编码问题..现在它工作正常..谢谢

以上是关于从 SQL Server 2008 R2 检索多语言数据(中文、日文...)并在 Java webapp 中显示的主要内容,如果未能解决你的问题,请参考以下文章

从开发人员的 POV 看 SQL Server 2008 和 SQL Server 2008 R2 之间的差异

Umbraco 从 SQL Server 2012 迁移到 SQL Server 2008 R2

从 Win CE 设备到 SQL Server 2008 R2 的 SQL 复制

将 SQL Server 2008 r2 降级到 SQL Server 2008

使用 Powershell 从 SQL Server 2008 R2 导出到固定宽度的文本文件

Team Foundation 数据从 TFS2010/SQL Server 2008R2 迁移到 TFS2012/SQL Server 2012 服务器