将外语字符传入/传出数据库

时间:2009-11-04 03:43:19

标签: sql-server utf-8 character-encoding

我试图允许用户将希伯来字符输入HTML表单中的某些字段(使用java处理)。我做了一些研究,很明显,以下标记需要成为HTML文档的一部分:

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

这样做,我得到以下结果: 当用户在输入字段中输入希伯来文本时,它将以希伯来语正确保存并显示在屏幕上。但是,如果我查看数据库中的数据,则无法理解。此外,如果我尝试将其输出到文件(使用iText),那就是胡言乱语。但是,如果我将数据直接输入到数据库中,它在数据库中的希伯来语以及输出文件中都是可读的,但它在屏幕上是乱码。

样品: 如果用户在浏览器中输入,则显示如下:עִבְרִית

当在数据库中输入时,相同的字符串在屏幕上显示如下: Ѱ

查看数据库时,浏览器输入的字符串如下所示:×¢Ö'×ְרÖ'×ת

手动输入的字符串如下所示:עִבְרִית(虽然从左到右显示,而希伯来语是从右到左的语言;复制并粘贴在此处时,它显示正确,从右到左)< / p>

显然,数据库和浏览器没有使用此编码“说话”相同的语言。我正在使用SQL Server并且没有对数据库进行任何更改,除了确保将相关字段定义为nvarchar字段。我错过了什么?

1 个答案:

答案 0 :(得分:1)

听起来数据库编码设置不正确。如果数据库只期望8859-1(一种常见的默认编码方案),那么它将尝试将utf-8转换为8859-1。这往往效果不好。

以下是MS关于此问题的文章: http://support.microsoft.com/kb/232580

拉​​里