0

OCTL文字を含む文字列をISO-8859-15に変換して、安定させるにはどうすればよいですか。私はJavaで作業しています。タイ。

Informix bbdd の値を回復しようとしていて、String の中に入れましたが、表示すると Espa\321a が表示されました---> ESPAÑA が表示されます。\321 が OCTL であるというのを見たのですが、これは可能ですか?

HTML OCTL HEX CMP CHR 意味

Ñ | \321 | =D1 | ん~ | (Ñ) | 大文字 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) {



        }
4

1 に答える 1

1

\32116 進数 D1 の 8 進数 (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();
于 2013-09-26T11:19:04.387 に答える