unicode - 经典 ASP : How to write unicode string data in classic ASP?

标签 unicode asp-classic utf-8

如何在经典 ASP 网页中显示存储 unicode 数据(使用 zawgyi1 字体输入)的 nvarchar 列?

当我检索值并将其写入页面时,它显示“??????”。我使用以下元标记将 ASP 页面的内容类型设置为 UTF-8:

<META http-equiv="Content-Type" content="text/html; charset=UTF-8">

不幸的是,文本仍然呈现为“??????”。

关于如何在经典 ASP 页面中显示 unicode 值有什么建议或想法吗?

最佳答案

Content-Type 元 header 通知浏览器将发送的内容视为 UTF-8 编码的文本流。它不能确保发送的流实际上是 UTF-8。要正确处理 UTF-8,您需要做 3 件事:-

  1. 确保您的静态内容以 UTF-8 兼容编码保存。
  2. 确保您的动态内容编码为 UTF-8。
  3. 通知客户端内容是 UTF-8 编码的。

第 1 项要求您将 ASP 文件实际保存为 UTF-8 编码文件,或者文件中的所有静态内容都在 ASCII 字符范围 (0-127) 内。请注意,如果保存为 UTF-8,则所有服务器端脚本都必须使用 ASCII 字符范围内的字符。在 Visual Studio 中,您可以通过“将文件另存为...”,然后单击“保存”按钮上的小箭头来完成此操作。

第 2 项 要求 Response.CodePage属性设置为 UTF-8 代码页 65001,您可以在代码中或通过添加属性 CODEPAGE=65001 来完成此操作到<%@ %> ASP 文件第一行的声明。如果您在代码中执行此操作,则必须在调用 Response.Write 之前设置它。 并且:不要使用 chr 或 asc 函数(使用 65001 时这些函数会出现问题),而是使用 chrw 和 ascw。

第 3 项要求 Content-Type header 包含 charset=UTF-8预选赛。正如您已经所做的那样,您可以使用 META header 来执行此操作。就我个人而言,我发现这有点困惑,我更喜欢使用 Response.Charset = "UTF-8"在代码中。这将限定符置于 true Content-Type 上。 HTTP header 。

关于unicode - 经典 ASP : How to write unicode string data in classic ASP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856239/

相关文章:

ms-access - 您无法添加或更改记录,因为表 'table_name' 中需要相关记录

iis - 如何移动页面并重命名它们,同时不破坏来自仍然使用格式不正确的 URL 的外部站点的传入链接

javascript - 打开一个新窗口创建一个新 session

mysql - MySQL 中完全支持 UTF8 的数据类型和排序规则

java - 如何使用 Scanner 类从键盘读取希腊语输入?

c# - 如何将 Process.Start() 与 unicode 符号(例如😜)一起使用

Java表情符号转换为xml : what libraries exist?

c - 控制台输出中的 UTF-8 字符

html5 charset=utf-8 不适用于德语变音符号

java - 打印编码的 unicode 字符