0

我有一个用 CP895 (Kamenicky) 编码的 DBF 文件,我想用 Java 读取它。如何将 CP895 重新编码为 UTF8?

4

1 回答 1

0

第一步 - 创建 Kamenicky 字符表:

\u250C'、'\u2588'、'\u2584'、'\u258C'、'\u2590'、'\u2580'、'\u03B1'、'\u00DF'、'\u0393'、'\u03C0'、' \u03A3'、'\u03C3'、'\u00B5'、'\u03C4'、'\u03A6'、'\u0398'、'\u03A9'、'\u03B4'、'\u221E'、'\u03C6'、' \u03B5'、'\u2229'、'\u2261'、'\u00B1'、'\u2265'、'\u2264'、'\u2320'、'\u2321'、'\u00F7'、'\u2248'、' \u00B0', '\u2219', '\u00B7', '\u221A', '\u207F', '\u00B2', '\u25A0', '\u00A0' }; 返回地图;} '\u03B1'、'\u00DF'、'\u0393'、'\u03C0'、'\u03A3'、'\u03C3'、'\u00B5'、'\u03C4'、'\u03A6'、'\u0398'、 '\u03A9'、'\u03B4'、'\u221E'、'\u03C6'、'\u03B5'、'\u2229'、'\u2261'、'\u00B1'、'\u2265'、'\u2264'、 '\u2320'、'\u2321'、'\u00F7'、'\u2248'、'\u00B0'、'\u2219'、'\u00B7'、'\u221A'、'\u207F'、'\u00B2'、 '\u25A0', '\u00A0' }; 返回地图;} '\u03B1'、'\u00DF'、'\u0393'、'\u03C0'、'\u03A3'、'\u03C3'、'\u00B5'、'\u03C4'、'\u03A6'、'\u0398'、 '\u03A9'、'\u03B4'、'\u221E'、'\u03C6'、'\u03B5'、'\u2229'、'\u2261'、'\u00B1'、'\u2265'、'\u2264'、 '\u2320'、'\u2321'、'\u00F7'、'\u2248'、'\u00B0'、'\u2219'、'\u00B7'、'\u221A'、'\u207F'、'\u00B2'、 '\u25A0', '\u00A0' }; 返回地图;} '\u03A9'、'\u03B4'、'\u221E'、'\u03C6'、'\u03B5'、'\u2229'、'\u2261'、'\u00B1'、'\u2265'、'\u2264'、 '\u2320'、'\u2321'、'\u00F7'、'\u2248'、'\u00B0'、'\u2219'、'\u00B7'、'\u221A'、'\u207F'、'\u00B2'、 '\u25A0', '\u00A0' }; 返回地图;} '\u03A9'、'\u03B4'、'\u221E'、'\u03C6'、'\u03B5'、'\u2229'、'\u2261'、'\u00B1'、'\u2265'、'\u2264'、 '\u2320'、'\u2321'、'\u00F7'、'\u2248'、'\u00B0'、'\u2219'、'\u00B7'、'\u221A'、'\u207F'、'\u00B2'、 '\u25A0', '\u00A0' }; 返回地图;} \u00A0' }; 返回地图;} \u00A0' }; 返回地图;}

Second step - read bytes from DBF and encode chars:

                  byte[] bytes = column.getBytes();

                  for (int x = 0; x < bytes.length; x++) {
                      int index = (0xff) & bytes[x];
                      char c = getKamenickyCharTable()[index];
                  }
于 2013-07-19T13:17:26.393 回答