俄罗斯字符呈现为经典ASP中的问号

时间:2013-07-10 06:36:23

标签: sql-server-2008 asp-classic

我有一个ASP页面。我从数据库中获取数据。在数据库中,该字符都是俄语。但是,当我获取要在网页中显示的数据时,它呈现为“?”标记。

oCommBM.Parameters.Append oCommBM.CreateParameter("@menu", adVarChar, adParamOutput,2000, "0")

我正在传递这样的参数。如果我使用aVarWCahr而不是adVarChar,那么它会显示俄语字符但下面包含的内容不能正常呈现。

我通过执行存储过程从数据库检查。它显示正常。 我还在asp页面中添加了2行。

Response.codePage = 65001
Response.Charset = "UTF-8"

我从asp页面代码以及Notepad ++编码类型改变了所有可能的编码类型。

非常感谢任何建议。谢谢。

1 个答案:

答案 0 :(得分:0)

第一部分:从数据库中恢复

使用aVarWChar时,W代表“Wide”,这意味着此参数是Unicode字符串。 Unicode支持所有语言没有问题,所以它是要走的路。

当你使用aVarChar时,字符串以其他方式编码,但不是以Unicode编码(它可能取决于服务器配置,或其他。我不知道你是否可以控制它.ASP它是如此古老的技术!!)

所以你最好的办法是从数据库中恢复Unicode并让ASP为浏览器编码。

第二部分:在ASP页面中显示

看看这个:Classic ASP: How to write unicode string data in classic ASP? 这显示了如何让ASP以一种浏览器正确显示的方式对Unicode字符串进行编码。