我在将Unicode数据转换为国家字符时面临问题。当我使用全国功能将UNICODE数据转换为国家时,某些垃圾字符之类的字符串之后是 @
。例如WS-UNICODE PIC X(200(WS-National Pic N(600(
- 让ws-unicode中的值为これらのは。从Java结束。
移动功能国民(WS-Unicode,1208(到WS-National。
- 转换后的值大约是これらは @。
我不希望转换后添加额外的 @字符。
请帮助我找出可能的解决方案,我尝试使用Inspect子句用空间替换N'@'。它运行良好,但在某些特定情况下失败了,例如我们从用户端输入中有 @。在这种情况下
下面是我用来将EBCDIC转换为UTF的代码段。在捕获字符串长度之前,我还得到 @符号:
STRING
FUNCTION DISPLAY-OF (
FUNCTION NATIONAL-OF (
WS-EBCDIC-STRING(1:WS-XML-EBCDIC-LENGTH)
WS-EBCDIC-CCSID
)
WS-UTF8-CCSID
)
DELIMITED BY SIZE
INTO WS-UTF8-STRING
WITH POINTER WS-XML-UTF8-LENGTH
END-STRING
SUBTRACT 1 FROM WS-XML-UTF8-LENGTH
该代码的作用是将EBCIDIC字符串的UTF8表示形式字符串到另一个变量中。带有指针子句将捕获字符串 1的新长度( 1,因为指针在字符串结束后位于下一个位置(。
使用此方法,您应该能够确切知道第二个字符串的时间,并使用该字符串,并具有确切的长度。
应该删除不需要的@s。
编辑:
我忘了提到的一件事,就我而言, @符号实际上是EBCDIC低值,当查看大型机上的实际十六进制