上海太保P05项目——格式控制方法

来源:互联网 发布:客户端网络实用工具 编辑:程序博客网 时间:2024/05/01 20:10

        在DATASTAGE -CIF层开发中,一般都使用“||”与空格作为格式化输出,而在EXF数据文件格式上,都是字段前后使用空格,字段之间用“||”的方式组织数据,行与行使用回车。这样做的目的是为了防止乱码的产生。

        乱码的产生:电脑是以unicode的方式来读取数据的,即十六进制。也就是说,我们在电脑看到的所有我们能够理解的数据,都会被转化成十六进制后才被电脑读取。而在DS设计中,经常需要使用数据的截取,如varchar(100)的数据转为varchar(50)。在十六进制法中,是以四位为作为一个最小记录单元,即一个最小记录单位占两个字节长度。比如一个字符“A”,它会用F0D0来表示,字符串“中国”,它会用FE30 39DA来表示。电脑所说的字段长度是以字节(位)为单位,所以截取也是以字节为单位了。

        这样就会出现一种情况,如果字符串中出现有空格,而空格是十六进制是00,截取的话就有可能出现乱码了。比如要把字符串“中 国”放到一个varchar(4)的字段里,由于“中”与“国”两个字已经各占了位,多了个空格就字符串“中 国”就需要经过截取才能保存到varchar(4)里面了。假设字符串“中国”的十六进制是FE30 39DA,那么加了空格后的字符串“中 国”的十六进制就成了FE30 0039 DA。截取成四位保存到varchar(4),截取后就得到了FE30 0039,于是后面的DA就会产生乱码了。

        解决的办法是在字符串后面再加一个空格,即形成DA00,从而凑成一个整的最小单位,然后在使用指定的终结符号(我们使用的是“||”)作为字段的间隔符号,这样就可以防止数据截取后产生乱码了

原创粉丝点击