NutzCN Logo
问答 nutzwx-1.r.57-SNAPSHOT.jar回复中文报异常
发布于 3061天前 作者 jellee 1961 次浏览 复制 上一个帖子 下一个帖子
标签:

我用nutzwx开发,公众号回复中文会报以下错误:
java.lang.RuntimeException: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
at org.nutz.lang.Lang.wrapThrow(Lang.java:149)
at org.nutz.lang.Xmls.xml(Xmls.java:62)
at org.nutz.weixin.util.Wxs.convert(Wxs.java:163)
at org.nutz.weixin.util.Wxs.convert(Wxs.java:178)
at org.nutz.weixin.util.Wxs.handle(Wxs.java:623)
回复英文没有问题。
请问是什么原因呢?

7 回复

环境不是utf8

来自炫酷的 NutzCN

在windows里,如果jdk或者tomcat设置了-Dfile.encoding=UTF-8,tomcat用start.bat启动是gbk编码,就乱码了,cmd设置utf8好像没什么方法,改操作系统编码又不太好,有其他方案吗?

改源码好像也不太好:
public static WxInMsg convert(String data) {
return convert(new ByteArrayInputStream(data.getBytes())); //在nutz-wx里加UTF-8。
}

@jellee 确保是启动日志里面是utf8

来自炫酷的 NutzCN

加了

   @Encoding(input = "UTF-8", output = "UTF-8")

不知道为啥没用

@fineliving 不是这个。这是设置req/resp的编码。

看nutzbook的第一章,确保eclipse工作在utf-8

来自炫酷的 NutzCN

我目前想到的解决方案:
1. Tomcat启动项为UTF-8
2. nutzwx的data.getBytes()加UTF-8
3. windows操作系统配置成utf-8
nutz应该是读取系统或者jdk默认编码的,windows默认是gbk,jdk设置utf-8编码的话,tomcat的dos窗口就显示不了utf-8。
我意思是说:微信中文交互是没问题了,但dos窗口没找到好的方案配置utf-8。

添加回复
请先登陆
回到顶部