使用java将OCTL字符转换为ISO-8859-15(html)

时间:2013-09-26 11:01:36

标签: java decoder

如何将包含OCTL字符的String转换为ISO-8859-15,以使其变得简单。 我正在使用java。 TY。

我正在尝试恢复informix bbdd的值,我把它放在String中,但当我在视图中显示时,我看到了Espa \ 321a --->我想看看ESPAÑA。我一直在寻找一种能够实现这一目标的工具吗?

HTML OCTL HEX CMP CHR意思

Ñ| \ 321 | = D1 | N~ | (Ñ)|资本N,代字号

所以OCTL = \ 321 =Ñ

我试试这个,但不适合我,我做错了。

Charset charset = Charset.forName("OCTL");
        CharsetDecoder decoder = charset.newDecoder();
        CharsetEncoder encoder = charset.newEncoder();

        try {

            ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(rs.getString(Constants.DES_PAIS_COM)));

            ByteBuffer and then to a string.

            CharBuffer cbuf = decoder.decode(bbuf);
            String s = cbuf.toString();
            deuteDetall.setDesPaisCom(s);

        } catch (CharacterCodingException e) {



        }

1 个答案:

答案 0 :(得分:1)

\321是八进制,十六进制D1,(3 * 64 + 2 * 8 + 1)。

String s = "...";
Pattern OCTAL = Pattern.compile("\\\\(\\d\\d\\d)");
StringBuffer sb = new StringBuffer();
byte[] b1 = new byte[1];
Matcher m = OCTAL.matcher(s);
while (m.find()) {
    String replacement = m.group(): // default original
    try {
        b1[0] = (byte)Integer.parseInt(m.group(1), 8);
        replacement = new String(b1, "ISO-8859-15");
    } catch (NumberFormatException e) {
        //...
    }
    m.appendReplacement(sb, replacement);
}
m.appendTail(sb);
s = sb.toString();