显示在webapp中的阿拉伯语文本没有数据库更改

时间:2009-07-15 06:54:03

标签: java sql-server character-encoding

当用户输入阿拉伯语名称和密码时,我应该检索该用户的数据。在java中我使用的是utf-8编码 我应该从数据库中检索阿拉伯语文本形式的数据。我使用的数据库是sql server 2005.并且该列设置为varchar而不是nvarchar。因为数据库指向生产。我无法将列类型更改为nvarchar。有没有办法转换????将数据库从数据库检索到阿拉伯语文本而不更改DB。 任何人都可以帮忙解决这个问题。

Bhoomesh

5 个答案:

答案 0 :(得分:2)

不确定,但可能您可以将utf-8转换为ANSI并存储在varchar列中。阅读时将其转换回utf-8。

我不知道它是否可能,但尝试使用谷歌搜索。

答案 1 :(得分:2)

您是如何将文本存储在数据库中的?从根本上说,听起来你应该更改数据库。如果您使用非varchar进行非Unicode排序规则,那么 仅限于存储符合您已获得的归类的文本使用可怕的不可靠和基本上“错误”的转换,将文本视为二进制数据。

即使在某些情况下可以执行此操作,您也可能会发现其他情况会失败。

与您的数据库管理员交谈,解释架构是根本错误的 - 为了支持完整的Unicode,您需要更改架构。你最终必须经历这个,所以你不妨在此期间拯救自己讨厌的黑客。

答案 2 :(得分:1)

我对Java知之甚少,但你的问题更为普遍。

我认为如果使用不正确的编码存储的字符(列是ANSI并且输入是UTF8),那么即使有办法,我也不建议你将它转换回UTF8,但是最好解决它从数据库方面。

答案 3 :(得分:0)

您可以尝试使用前缀N将字符串插入db。像这样:N'some text'。

答案 4 :(得分:0)

还有UTF-7,它只使用US-ASCII字符。使用它,您可能会远离代码页问题。