【问题标题】:Chinese characters are getting to junk characters - Progress4gL - Open edge汉字正在变成垃圾字符 - Progress 4gL - Openedge
【发布时间】:2019-02-25 23:39:21
【问题描述】:

程序语言——打开Edge,progress4GL

寻求您的帮助,在从 XML 文件中读取中文字符时,它们正在被转换为垃圾字符。

XML 文件采用 UTF-8 编码。

我们正在加载 XML 的会话的代码页 =“ISO8859-1”

已经尝试使用 MEMPTR 变量但没有成功,谁能告诉我可以做些什么来解决这个问题?

INPUT FROM value (cFileName) BINARY NO-MAP no-convert.
  IMPORT unformatted mPointer.
INPUT CLOSE.    

SET-SIZE(mPointer) = mPointerSize.     

CREATE X-DOCUMENT hXML .
hXML:ENCODING = "UTF-8".

CREATE X-NODEREF  hRoot.

hXML:LOAD("memptr",mPointer,FALSE)  NO-ERROR.

【问题讨论】:

    标签: openedge progress-4gl


    【解决方案1】:

    iso8859-1 无法显示汉字。您需要将会话代码页与您正在阅读的数据相匹配。显而易见的解决方案是使用设置为 utf8 的相关 -cp* 参数来启动会话。 但是 -- 如果您使用不兼容的代码页来存储您将要破坏D b。垃圾进,垃圾出……

    以下文章是一个合理的开始:

    https://knowledgebase.progress.com/articles/Article/P762

    因此,您需要做的第一件事是找出您的数据库正在运行的代码页。

    您可以通过查看 dbname.lg 并搜索“-cpinternal”或“(4264)”,以与平台无关的方式可靠地发现这一点。

    但是要非常小心——正如我上面提到的,如果您强制进行不兼容的转换,您可能会损坏您的数据库。如果创建的 db 不是支持 utf8(或其他兼容中文字符的代码页),您必须首先解决该问题。

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 2012-03-19
      • 2018-03-14
      • 2014-03-19
      • 2019-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多