首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用java将OCTL字符转换为ISO-8859-15(html)

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

Stack Overflow用户
提问于 2013-09-26 11:01:36
回答 1查看 228关注 0票数 0

如何将包含OCTL字符的字符串转换为ISO-8859-15,使其不稳定.我和java一起工作。泰。

我试图恢复informix的值,我把它放进字符串中,但是当我看到ESPA\321A-->我想看ESPA A的时候,我正在寻找一把锯子\321是一个OCTL,这可能吗?

HTML OCTL HEX CMP CHR含义

\321 =D1 \\x=D_1\x{e 010}\\x{e76f}\321=d1\x{e 010}\\x{e76f}\\x{e76f}\x1=d1\x{e 010} N ~溶胶-(N)

因此,OCTL = \321 =

我试过了,但别为我工作,我做错了什么。

代码语言:javascript
复制
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) {



        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-26 11:19:04

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

代码语言:javascript
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19026422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档