【问题标题】:Russian character render as question mark in Classic ASP俄语字符在经典 ASP 中呈现为问号
【发布时间】:2013-07-11 10:55:21
【问题描述】:

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

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

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

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

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

我从 asp 页面代码和 Notepad++ 编码类型中更改了所有可能的编码类型。

非常感谢任何建议。在此先感谢。

【问题讨论】:

  • 提供所有代码,从你提供的内容中无法判断问题出在哪里
  • .If instead of adVarChar I used aVarWCahr then it's showing the Russian character but the below contained not render properly. 你能再解释一下吗?
  • 实际上这部分是用于菜单的。如果我添加 aVarWchar 然后在菜单中它会在菜单中显示俄语字符但页面的底部没有正确呈现..我认为会发生一些异常所以剩下的页面无法正确加载。

标签: sql-server-2008 asp-classic


【解决方案1】:

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2010-12-23
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-12
    相关资源
    最近更新 更多