Skip to content

Commit c74cdef

Browse files
committed
escape only non-ASCII characters
1 parent a8099d0 commit c74cdef

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -838,9 +838,17 @@ private String getEncodedVolumeName(String volumeName) throws UnsupportedEncodin
838838
String decoded = new String(utf8Bytes, "UTF-8");
839839
// Print each code unit as a Unicode escape
840840
StringBuilder unicodeEscaped = new StringBuilder();
841-
for (char ch : decoded.toCharArray()) {
842-
unicodeEscaped.append(String.format("\\u%04X", (int) ch));
841+
for (int i = 0; i < decoded.length(); i++) {
842+
char ch = decoded.charAt(i);
843+
if (ch <= 127 && Character.isLetterOrDigit(ch)) {
844+
// Keep ASCII alphanumerics as-is
845+
unicodeEscaped.append(ch);
846+
} else {
847+
// Escape non-ASCII characters
848+
unicodeEscaped.append(String.format("\\u%04X", (int) ch));
849+
}
843850
}
851+
844852
return unicodeEscaped.toString();
845853
}
846854

0 commit comments

Comments
 (0)