From 00fec789b5b4494018d81dc2c45f226e9b94a4d0 Mon Sep 17 00:00:00 2001 From: Tropical <42101043+tropicaaal@users.noreply.github.com> Date: Wed, 8 Apr 2026 00:05:37 -0500 Subject: [PATCH] fix: don't truncate codepoints in `DataInputStream::readUTF` --- .../java/src/InputOutputStream/DataInputStream.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/targets/java/src/InputOutputStream/DataInputStream.cpp b/targets/java/src/InputOutputStream/DataInputStream.cpp index 482d3e9cb..a6bafd280 100644 --- a/targets/java/src/InputOutputStream/DataInputStream.cpp +++ b/targets/java/src/InputOutputStream/DataInputStream.cpp @@ -473,9 +473,8 @@ std::string DataInputStream::readUTF() { break; } - char readChar = - (char)(((firstByte & 0x1F) << 6) | (secondByte & 0x3F)); - outputString.push_back(readChar); + outputString.push_back((char)firstByte); + outputString.push_back((char)secondByte); continue; } else if ((firstByte & 0xF0) == 0xE0) { // Three byte UTF @@ -516,10 +515,9 @@ std::string DataInputStream::readUTF() { break; } - char readChar = - (char)(((firstByte & 0x0F) << 12) | - ((secondByte & 0x3F) << 6) | (thirdByte & 0x3F)); - outputString.push_back(readChar); + outputString.push_back((char)firstByte); + outputString.push_back((char)secondByte); + outputString.push_back((char)thirdByte); continue; } }