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