我试图让用户在HTML表单(使用java处理)中的某些字段中输入希伯来字符。我做了一些研究,而下面的标记需要的HTML文档的一部分,这是明显的:将外文字符传递到数据库/从数据库传递
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
也正在做,我有以下结果: 当用户输入进入希伯来文字段,它将以希伯来语保存并正确显示在屏幕上。但是,如果我查看数据库中的数据,则无法理解。此外,如果我尝试将它输出到一个文件(使用iText),它是胡言乱语。但是,如果我直接将数据输入到数据库中,则数据库中的希伯来语以及输出文件中都可以读取数据,但在屏幕上显示为乱码。
样品: 如果用户在浏览器中输入它,它看起来是这样的:עִבְרִית
相同的字符串,在数据库中输入时,会出现这样的画面:Ѱ
当在数据库中查找,浏览器输入的字符串如下所示:×¢O'×Ö°×××O'ª
手动输入的字符串显示这样的:עִבְרִית(虽然它出现左而希伯来语是一种从右到左的语言;当在这里复制和粘贴时,它看起来是正确的,从右到左)
很明显,数据库和浏览器不是用这种编码“说话”相同的语言。我正在使用SQL Server,并没有对数据库进行任何更改,除了确保将问题字段定义为nvarchar字段。我错过了什么?
感谢您的帮助和纽带。我阅读这篇文章,并解释了这个问题,但我仍然无法弄清楚如何解决这个问题。我怎样才能将HTML更改为使用UTF-16(本文声称使用的UCS-2由SQL Server 2000使用),或者让SQL Server了解UTF-8?我试图将字符串转换为UTF-16,但它似乎不起作用 – twpc 2009-11-04 19:06:15
您是否尝试将MS字段设置为键入BINARY/VARBINARY/IMAGE,如MS文章所示(选项4)? – 2009-11-04 23:26:09
是的,我做了,它没有让它在数据库中可读。但是,我发现这篇文章包含了将数据转换为UTF-8或从UTF-8转换为UTF-8所需的代码......有趣的是,转换工作在UTF-8和ISO-8859-1之间,而不是UTF-8和UTF-16,正如MS上面的文章中所暗示的那样。对于有相同问题和使用Java的人来说,这是一个必读内容: http://www.jguru.com/faq/view.jsp?EID=137049 – twpc 2009-11-05 02:12:23