当我在我的Android应用程序中保存XML数据文件时,如果用户输入了表情符号,我会遇到异常。
d83d字符是这个:http://apps.timwhitlock.info/unicode/inspect?s=%F0%9F%98%84 - 笑脸字符。
相关的堆栈跟踪:
d83d字符是这个:http://apps.timwhitlock.info/unicode/inspect?s=%F0%9F%98%84 - 笑脸字符。
相关的堆栈跟踪:
java.lang.IllegalArgumentException: Illegal character (d83d)
at org.kxml2.io.KXmlSerializer.reportInvalidCharacter(KXmlSerializer.java:144)
at org.kxml2.io.KXmlSerializer.writeEscaped(KXmlSerializer.java:130)
at org.kxml2.io.KXmlSerializer.attribute(KXmlSerializer.java:465)
总体问题是: 如何修复它,以便我的用户不会因表情符号而导致应用程序崩溃...
后续问题包括:
这个KXmlSerializer是否支持表情符号/Unicode?
是否有更新的版本?到目前为止我还没有找到。 这个库是否在积极维护中?
谁在维护KXmlSerializer? 是http://kxml.org/吗?我在那里找不到太多信息...
如果将更新的版本放在类路径上,它不会与Android内置的版本冲突吗?
我应该使用哪个其他xml写入库来替换KXmlSerializer?
编辑:我应该补充说明,应用程序通过xml保存的文本来自标准的Android EditText UI小部件,用户在其中输入文本(我没有对字符串进行任何Unicode级别的操作)。