file - 使用 COBOL 将 Unicode 字符串写入文件

标签 file unicode cobol utf-16 ebcdic

我们正在更新在 IBM 大型机 (z/OS) 上运行的 COBOL 程序以支持非拉丁字符。

我有点难以理解 COBOL 如何处理定义为 PIC N 的 UTF-16 字符。

我需要将当前定义为 PIC X 的字段更新为 PIC N。然后该字段被写入文件。

例子:

01 RecordToWrite PIC X(20).

我知道PIC N 需要的空间是PIC X 的两倍。我不知道如何定义相应的PIC N 字段。

我猜 COBOL 会自己处理转换:

01 RecordToWrite PIC N(20).

但我真的不确定是不是这么简单。

我可以简单地将旧字段定义为 PIC N 而不必担心我的文件看起来还是一样吗?我需要采取哪些措施?

最佳答案

你的领域:

01 RecordToWrite PIC N(20).

20 个字符将占用 40 个字节。因此,您需要从 X 到 N 进行相应的调整。

您可能还需要使用 NATIONAL-OF 和 DISPLAY-OF 函数将其转换为 UTF-16 或 CCSID 1200。一旦您转换了数据,就不需要再弄乱它了,并且您的 40 字节/20 字符 Pic N 的行为将与您的旧 Pic X 字段一样——除非您必须与系统的未转换部分对话。

关于file - 使用 COBOL 将 Unicode 字符串写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45521776/

相关文章:

java - 在 Linux 下使用 java.nio.Files 更改文件所有者组

java - 创建带有扩展名的文件夹/容器但将其视为文件?

php - 在 PCRE/PHP 中匹配 Unicode 字母字符

cobol - 在 COBOL 中填充数组时出现问题

android - Android App Dev:关于如何编码来自远程ftp服务器的文件的音频流的任何示例/建议?

php - 无法将俄语文本插入mysql数据库

c# - 我的应用程序的内部编码

sqlite - 如何在 COBOL 中编写 SQLite 回调

cobol - 解释段落中句号/句号/点的使用

linux - 数字取证 : what can i get out from my . 原始文件?