将包含八进制数的字符串转换为 UTF-8 文本

你好,这是我在这个网站上的第一个问题。我正在制作一个将文本转换为八进制,但又将八进制转换为 utf-8 文本的程序。


150 145 154 154 157 40 167 157 162 154 144 应该解码为 hello world


这是我的代码


source = source.replaceAll(" ", "");

int integer = Integer.parseInt(source,8);

List<Byte> queue = new LinkedList<>();

for (String s : source.split(" ")) {

    if (s != null && s != "") {

            for (byte b : s.getBytes()) {

                    queue.add(b);

            }

    }

}



Byte[] byteArr = new Byte[queue.size()];

byteArr = queue.toArray(byteArr);


byte[] b2 = new byte[byteArr.length];

for (int i = 0; i < byteArr.length; i++)

{

    b2[i] = byteArr[i];

}


String answer = new String(b2, StandardCharsets.UTF_8);

edittextbinary.setText(answer);

它只返回相同的八进制值并且不解码。我需要帮助来提取八进制数并将它们转换为十进制然后解码为 UTF-8


跃然一笑
浏览 522回答 1
1回答

UYOU

我希望这可以帮助你。public static void main(String[] args) {&nbsp; String octalString = "150 145 154 154 157 40 167 157 162 154 144";&nbsp; StringTokenizer tokeniser = new StringTokenizer(octalString);&nbsp; int len = tokeniser.countTokens();&nbsp; int[] octalArray = new int[len];&nbsp; byte[] octalByteArray = new byte[len];&nbsp; for (int i = 0; tokeniser.hasMoreTokens(); i++) {&nbsp; &nbsp; octalArray[i] = Integer.parseInt(tokeniser.nextToken(),8);&nbsp; &nbsp; octalByteArray[i] = (byte) octalArray[i];&nbsp; }&nbsp; System.out.println(new String(octalByteArray, "UTF-8"));}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java