You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java 11中如何将"\303\255"转换为字符"í"?

解决Java 11中将"\303\255"转换为"í"的问题

核心逻辑

字符串"\303\255"是UTF-8字节的八进制转义表示:

  • \303对应八进制值303,转十六进制为C3
  • \255对应八进制值255,转十六进制为AD
    这两个字节组合起来就是UTF-8编码下字符í的标准字节序列。

实现代码

需要先把八进制转义的字符串解析为对应字节数组,再用UTF-8解码得到目标字符:

import java.nio.charset.StandardCharsets;

public class OctalToUtf8Converter {
    public static void main(String[] args) {
        String input = "\\303\\255"; // 若输入是带转义的原始字符串,需用双反斜杠
        
        // 解析八进制转义为字节数组
        byte[] utf8Bytes = parseOctalEscapeString(input);
        // UTF-8解码得到目标字符串
        String targetChar = new String(utf8Bytes, StandardCharsets.UTF_8);
        
        System.out.println(targetChar); // 输出:í
    }

    private static byte[] parseOctalEscapeString(String input) {
        StringBuilder tempBuilder = new StringBuilder();
        int index = 0;
        int len = input.length();

        while (index < len) {
            if (input.charAt(index) == '\\' && index + 3 <= len) {
                // 提取\后三位八进制数字
                String octalSegment = input.substring(index + 1, index + 4);
                try {
                    // 八进制转字节(处理有符号字节兼容)
                    int octalValue = Integer.parseInt(octalSegment, 8);
                    tempBuilder.append((char) octalValue);
                    index += 4;
                    continue;
                } catch (NumberFormatException ignored) {
                    // 无效八进制转义,按普通字符处理
                }
            }
            tempBuilder.append(input.charAt(index));
            index++;
        }
        // 用ISO-8859-1保证单字节映射,得到原始字节数组
        return tempBuilder.toString().getBytes(StandardCharsets.ISO_8859_1);
    }
}

简化场景处理

如果输入字符串是Java编译时已解析的八进制转义(即代码中直接写"\303\255",单个反斜杠),可以直接简化处理:

String input = "\303\255";
String targetChar = new String(input.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
System.out.println(targetChar); // 输出:í

内容的提问来源于stack exchange,提问作者Benan Mozalbet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 12:15:39