导出文件的编码问题

Dev*_*arl 1 java encoding ibm-midrange

我试图找出集成项目中发生了什么.我们无法在最后得到正确的编码.

立陶宛文件已导入as400.在那里,文本存储在编码EBCDIC中.将数据导出到ANSI文件,然后读取为windows-1257.ASCII字符工作正常,一些立陶宛语可以,但其余的看起来像垃圾,如〜,和].

管道上的示例字符串

启动文件
Tuskulënö

AS400
Tuskulënö
EAA9A9596
34224335A

导出文件(转换为windows-1257后)
Tuskulėnö

导出文件
Tuskulėnų的预期结果

有任何想法吗?

问候,卡尔

Joa*_*uer 5

EBCDIC不是单一编码,它是一系列编码(在本例中称为代码页),类似于ISO-8859-*是一系列编码:系列中的编码共享大约一半的"基本"字母代码(大致是ASCII中存在的)并且另一半有所不同.

因此,如果您说它存储在EBCDIC中,您需要告诉我们使用了哪个代码页.

ANSI存在类似的问题:当用于编码时,它指的是Windows默认编码.遗憾的是,Windows安装的默认编码可能因配置的区域设置而异.

所以再次:你需要找出这里使用的实际编码(这些通常来自Windows-*系列,"普通"英文版Windows-1252).

一旦你真正知道你在每个点上拥有想要的编码,你就可以迈出第二步:修复它.

我的个人喜好了这样那样的问题是这样的:只有一个步骤,其中编码转换:采取任何初始工具产生并将其转换为UTF-8的第一步.从那时起,始终使用UTF-8来处理该数据.如果需要,可以在最后一步将UTF-8转换为其他编码(但如果可能,请避免使用此编码).