Skip to content
Snippets Groups Projects
Commit eae6e97d authored by srosse's avatar srosse
Browse files

no-jira: update clean XML method to allow all range of unicodes

parent bf63e8ee
No related branches found
No related tags found
No related merge requests found
...@@ -488,23 +488,24 @@ public class StringHelper { ...@@ -488,23 +488,24 @@ public class StringHelper {
if(string == null) return null; if(string == null) return null;
if(string.length() == 0) return string; if(string.length() == 0) return string;
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder(string.length());
char[] charArr = string.toCharArray(); char[] charArr = string.toCharArray();
int numOfCharacters = charArr.length; int numOfCharacters = charArr.length;
for(int i=0; i<numOfCharacters; i++) { for(int i=0; i<numOfCharacters; i++) {
char ch = charArr[i]; int ch = string.codePointAt(i);
if(ch < 32) { if(ch < 32) {
switch(ch) { switch(ch) {
case '\n': sb.append(ch); break;//0x000A case '\n': //0x000A
case '\t': sb.append(ch); break;//0x0009 case '\t': //0x0009
case '\r': sb.append(ch); break;//0x000D case '\r': sb.appendCodePoint(ch); break;//0x000D
default: // dump them
} }
} else if(ch >= 0x0020 && ch <= 0xD7FF) { } else if(ch >= 0x0020 && ch <= 0xD7FF) {
sb.append(ch); sb.appendCodePoint(ch);
} else if(ch >= 0xE000 && ch <= 0xFFFD) { } else if(ch >= 0xE000 && ch <= 0xFFFD) {
sb.append(ch); sb.appendCodePoint(ch);
} else if(ch >= 0x10000 && ch <= 0x10FFFF) { } else if(ch >= 0x10000 && ch <= 0x10FFFF) {
sb.append(ch); sb.appendCodePoint(ch);
} }
} }
return sb.toString(); return sb.toString();
......
...@@ -139,6 +139,10 @@ public class StringHelperTest { ...@@ -139,6 +139,10 @@ public class StringHelperTest {
//it's pahlavi \u10B7x //it's pahlavi \u10B7x
String value12 = StringHelper.cleanUTF8ForXml("Hello\u10B7x pahlavi"); String value12 = StringHelper.cleanUTF8ForXml("Hello\u10B7x pahlavi");
Assert.assertEquals("Pahlavi test", "Hello\u10B7x pahlavi", value12); Assert.assertEquals("Pahlavi test", "Hello\u10B7x pahlavi", value12);
// smile
String value13 = StringHelper.cleanUTF8ForXml("Smile \uD83D\uDE00x");
Assert.assertEquals("Smile test", "Smile \uD83D\uDE00x", value13);
} }
@Test @Test
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment