【发布时间】:2009-08-21 03:06:01
【问题描述】:
我们有一个日本客户,它在大型机上拥有 COBOL 源代码。他声称大型机上的代码以 Shift-JIS2 表示(我们认为我们对此非常了解)。当该代码传输到 PC 时,最常用的编码是什么? 我们向他发送了一个程序来处理该 COBOL 代码,但它似乎卡住了。客户不会直接给我们代码,所以实验很难。他的实验似乎表明了 UTF-8;我假设在 Shift-JIS2 中可编码的日文字符相应地转换为 Unicode 等价物。有人在这里有经验吗?
编辑:我认为我们解决了我们的谜团。客户(呃!)在 PC 上使用 CP-932(“ShiftJIS”),但他的 COBOL 程序的标识符中有日文字符,这就是我们的工具卡住的原因。
编辑:跟进:有点惊喜。 SHIFT-JIS 通常将我们认为的 ASCII 文本编码为所谓的“FULLWIDTH”字符,它们占用与东亚表意文字相同的屏幕空间;常规 ASCII 字符充当半角。所以,有一个全宽“A” , "B", ... "Z" 以及 FULLWIDTH "-"。显然,要处理日语 COBOL,我们的 COBOL 解析器不仅必须接受西方 ASCII,而且还必须接受全宽等价物,尤其是。 FULLWIDTH 字母和令人惊讶的 FULLWIDTH HYPHEN 用于分隔 COBOL 标识符中的“字母”。
编辑:IBM Enterprise COBOL 允许在标识符中使用 DBCS 字符。哎呀!
【问题讨论】:
-
一些ftp工具,比如FFFTP会为你进行编码转换,所以一定要指定传输方式。 forest.impress.co.jp/lib/inet/servernt/ftp/ffftp.html
-
如果是这样,它的默认值是什么?
-
注意 CP-932 是 Shift-JIS 的扩展(通常在 Windows 上使用)。表示 CP-932 时不要使用 Shift-JIS,因为某些字符将无法正确编码。
-
这是将近七年后的事了。还是个问题?如果无法访问源,您将在黑暗中拍摄。与日本 COBOL 程序员短期签约可能就像戴夜视镜一样,因为如果客户以日本“正常”的方式做事(而 COBOL 人知道正常的方式),你会很幸运。甚至动词也不必是原始的,尽管我不确定它们是否可以是 DBCS。我怀疑他们可以进行一些调整,但我没有尝试过。
-
IBM 和 Microsoft 努力提供与 IBM 相当的“Windows DBCS”。每个相关的“IBM”代码页都有对应于 Windows 的代码页。据我所知,日语 COBOL 程序使用英语动词以及所有标识符和文字(如果可能)使用日语是“正常的”。它似乎确实包含“宽”拉丁字符。
标签: unicode cobol mainframe shift-jis