【发布时间】:2013-12-03 09:43:32
【问题描述】:
我正在 Delphi 7 中制作一个程序,该程序应该将 unicode 字符串编码为 html 实体字符串。
例如,“ABCģķī”将导致“ABCģķī”
现在有两个基本的东西:
- Delphi 7 不是 Unicode,所以我不能直接在代码中编写 unicode 字符来对其进行编码。
- 代码页由 255 个条目组成,每个条目包含一个特定于该代码页的字符,前 127 个除外,对于所有代码页都是相同的。
那么 - 如何获得 1-255 范围内的字符值?
我尝试了Ord(Integer),但它也返回超过 255 的值。基本上,一切都很好(A 返回 65 以此类推),直到我的字符串达到非拉丁 unicode。
还有其他返回char值的方法吗?任何帮助表示赞赏
【问题讨论】:
-
在 Delphi 7 中,
ord(c)其中c的类型为char,在0..255范围内。很明显,您拥有char以外的其他东西。你有什么?有代码吗? -
您要编码的字符来自哪里,它们是什么格式?正如大卫所提到的,如果您将缺少正确转换的代码作为讨论的起点发布,那将非常有帮助。
-
您需要
WideChar和WideString类型。将Word大小的值类型转换为 WideChar,反之亦然。 -
@FreeConsulting 鉴于
ord(somechar)可以返回 >255 的值,我们似乎已经有了WideChar,但猜测并不好玩 -
午休刚回来 :) @DavidHeffernan 我使用
WideString作为输入,从WideChar和String获取值作为输出。 @HeinaWideString用于转换来自文件。
标签: delphi unicode delphi-7 html-entities html-encode