Added a Unicode->ASCII dump for debugging *->Unicode conversions. To use it, use 'java -cp Jskad.jar org.thdl.util.VerboseUnicodeDump'.

This commit is contained in:
dchandler 2004-01-17 17:10:12 +00:00
parent 6fdb2a26bb
commit 48b4c5cb07

View file

@ -298,6 +298,16 @@ public class UnicodeUtils implements UnicodeConstants {
characters will appear as themselves. */
public static String unicodeCodepointToString(char cp,
boolean shortenIfPossible) {
return unicodeCodepointToString(cp, shortenIfPossible, "\\u");
}
/** Like {@link #unicodeCodepointToString(char, boolean)} if you
pass in <code>"\\u"</code> as prefix. If you pass in the
empty string as prefix, then U+0F55 will print as
<code>0F55</code>. */
public static String unicodeCodepointToString(char cp,
boolean shortenIfPossible,
String prefix) {
if (shortenIfPossible) {
if ((cp >= 'a' && cp <= 'z')
|| (cp >= 'A' && cp <= 'Z')
@ -327,22 +337,22 @@ public class UnicodeUtils implements UnicodeConstants {
|| cp == '{'
|| cp == '}')
return new String(new char[] { cp });
if ('\t' == cp)
return "\\t";
if ('\n' == cp)
return "\\n";
if ('\r' == cp)
return "\\r";
}
if ('\t' == cp)
return "\\t";
if ('\n' == cp)
return "\\n";
if ('\r' == cp)
return "\\r";
if (cp < '\u0010')
return "\\u000" + Integer.toHexString((int)cp);
return prefix + "000" + Integer.toHexString((int)cp);
else if (cp < '\u0100')
return "\\u00" + Integer.toHexString((int)cp);
return prefix + "00" + Integer.toHexString((int)cp);
else if (cp < '\u1000')
return "\\u0" + Integer.toHexString((int)cp);
return prefix + "0" + Integer.toHexString((int)cp);
else
return "\\u" + Integer.toHexString((int)cp);
return prefix + Integer.toHexString((int)cp);
}
/**