我知道已有帖子:Classic ASP - How to convert a UTF-8 string to UCS-2?
但我的情况另一个。
我想将UTF-8转换为UCS-2BE
例如,UTF-8“МухтарамМизоч”中的这段文字转换为“CEB0 @ 0< 87> G”。
例如在PHP中我可以使用就绪函数iconv("utf-8","ucs-2be","Мухтарам Мизоч");
但在经典ASP中找不到任何解决方案。
此解决方案需要通过Kannel发送Unicode SMS文本。
答案 0 :(得分:1)
很难回答这个问题,但我觉得很有必要,因为你已经做了一个普遍的假设,许多人在使用ASP,PHP或你正在使用的任何语言进行编码时都会做出这样的假设。
在网页开发中,编码本质上与
相关联用于保存网页的源代码
只看iconv reference下的评论让我笑得很开心,因为有很多人不理解这个话题。
以PHP代码段为例
iconv("utf-8","ucs-2be","Мухтарам Мизоч");
这将有效,提供以下内容
UTF-8
编码保存文件(大多数现代编辑器都有某种形状或形式的此选项)。客户端Internet浏览器知道应该通过HTML中的元标记将页面作为UTF-8
处理,
<meta http-equiv="content-type" content="text/html; charset=utf-8">
或指定HTTP Content-Type Header
就经典ASP而言,它是您所需要的;
确保页面保存为UTF-8
编码,其中包括依赖项的所有#include
个文件。
通过在页面顶部指定此预处理指令(必须是第一行),告诉IIS您的页面为UTF-8
。
<%@Language="VBScript" CodePage = 65001 %>
告诉浏览器您正在使用的编码
<%
'Tell server to send all strings back to the client as UTF-8
'while also setting the charset in the HTTP Content Type header.
Responce.CodePage = 65001
Response.ContentType = "html/text"
Response.Charset = "UTF-8"
%>
<强>更新强>
Classic ASP不支持UCS-2
(UTF-16
LE)或UCS-2BE
(UTF-16
BE),指定CodePage
(1200或1201)将结果;
ASP 0203 - Invalid CodePage Value
在阅读了一下关于Kannel的内容之后,看起来好像您可以控制发送到SMS网关的字符集,我建议您尝试使用UTF-8
发送它。
<强>链接强>
Sending arabic SMS in kannel(这个问题是关于使用Java向Kannel发送阿拉伯语短信,但信息是相关的。)
Unicode on Windows XP(虽然针对Windows XP,代码页信息仍然相关)。
答案 1 :(得分:0)
在kannel.conf的SMSC部分添加alt-charset = UCS-2(或UCS-2BE)就足够了。 Kannel很好地发送到这个charset的smsc。