ASCII模式一丁点补充

最近在处理一个问题时,从ORACLE(AL32UTF8)到文本文件时,发现使用ASCII模式,数据竟然不正确。在查询源和目标的16进制编码时,在目标文件中,发生了变化,实在是诡异。

这个问题在倒腾了一会之后,发现罪魁祸首就是字符串长度问题。将字符串长度增加2倍之后,整个数据都正确了。 同时也感谢台湾的David。

仔细想了一下,根本原因就在于

  • ASCII模式的工作原理,它是处理单字节的,所以它的长度也是按单字节来计算的。
  • 而对于UTF-8编码是变长的,所以对于中文字符串长度至少是原来的2倍。
  • 根据CJK编码,现在只用到Plane2,所以,对于中日韩,字符长度设置成原来的3倍就可以了。

Author: Arthur Li
Email: [email protected]
欢迎转载和关注微信号: INFAer

results matching ""

    No results matching ""