2013-02-15 81 views
0

我正在使用Javascript和Rhino(执行一些Java代码)。我想执行下面的代码。如何避免异常“字符串中的无效十六进制字符”

service.push(deviceToken,payload); 

由于第一个字符串包含'x',它会给出以下例外。

com.sun.phobos.script.util.ExtendedScriptException:org.mozilla.javascript.WrappedException:裹了java.lang.RuntimeException:无效的十六进制字符:X

该字符串必须是有,因为它是。因此没有替换是可能的。

我正在使用Java-apns,并使用此方法来推送设备令牌和有效负载的通知。

+0

目前的情况是你的问题太局部...还请考虑你的标题“消除字符串中的字符”以及正文中的要求“字符串必须在那里”,这使得你的问题非常混乱。 – 2013-02-15 04:44:51

+0

该字符串包含不能被程序更改的字符(如密码)。当我谷歌这个错误,我得到了一个答案,如用“”或任何其他字符替换这些十六进制字符。但在这种情况下,这是不可能的。我期待着避免在字符串中检查这些十六进制字符的方法。 – Chanikag 2013-02-15 05:04:12

+0

完整的堆栈跟踪会告诉你RuntimeException的起源类,我怀疑它是一个Rhino类。这里没有足够的信息来回答这个问题。 – McDowell 2013-02-15 13:20:50

回答

0

您的设备令牌应该只包含十六进制字符0-9,A,B,C,d,E,F(或可替代A-F)