外文字符失去了它们的变音符号

4

我正在尝试国际化我们的调查工具中的问题,但当我插入一些翻译后的字符串时,SQL服务器似乎会去掉一些但不是全部的变音符号...

例如:(立陶宛语)

Ar jūsų darbas reikalauja, kad jūs įgytumėte naujų žinių ir įgūdžių?

变成

Ar jusu darbas reikalauja, kad jus igytumete nauju žiniu ir igudžiu?

请注意,'z'保留了它的变音符号,而'u'、'i'和'e'失去了它们的变音符号。保存文本的表列是nvarchar,但表排序规则为'Danish_Norwegian_CI_AS'。
有什么建议吗?
编辑2010.08.16 11:17:
好的,我可能已经缩小了一些范围。似乎我用来从数据库中提取句子的存储过程正在执行剥离操作。它从多个源选择,所有这些源都使用UNION作为同一查询。在其中某个地方,字符被剥离了。
...等一下...我想我可能在路上搞砸了什么...

2
你是如何插入字符的?有可能它正在剥离当前非Unicode代码页中不存在的字符吗?我上周学到,如果您在管理工具中使用字符串,则需要在字符串常量前加上N,即N'Ar jūsų',表示Unicode。 - Rup
你所说的“似乎”是指通过 SQL Server 管理工具看到的显示,还是通过查询实际检索到的字符串? - chryss
“seems to” = 在短信和应用程序中都是这样。然而,在字符串前面加上“N”可以解决短信问题。现在我只需要让我的(ASP 3.0)应用程序正确显示字符串即可。 - Christian Wattengård
我甚至尝试根据返回的语言动态设置contenttype头,但这也没有帮助。 - Christian Wattengård
1个回答

0

排序设置不会影响存储在UTF-8类型列中的数据。我建议将文件的代码页和编码更改为UTF-8,并确保表格将文本存储为UTF-8,这样就可以了。


SQL SMS现在返回正确的值,但ASP 3.0和ASP.NET 3.5都返回没有“更多奇特”的变音符号的字符串。我已经检查了我的设置,所有页面都保存为UTF-8。响应头也报告了正确的内容类型... - Christian Wattengård
需要注意的几个问题:1)你的上下文类型标头是什么,2)你的页面是否保存在UTF-8编码中?从Firefox中,右键点击并查看“查看页面信息”将为您提供此信息... - NinjaCat
Content-Type:text/html; charset=utf-8页面已保存为UTF-8格式,但仍然没有成功。现在我甚至已经对困难的部分进行了编码。源字符串现在显示为:Ar jūsų darbas reikalauja, kad jūs įgytumėte naujų žinių ir įgūdžių?我知道这个是正确的,因为如果我创建一个普通的HTML文件并使用此内容,则句子将正确显示... - Christian Wattengård
当您显示像在此评论中所示的HTML编码字符时,它会以什么样的形式出现? - NinjaCat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接