目录

现象

使用Wireshark抓包

中文显示问题

Wireshark默认配置

解决方案

问题原因


现象

        和前端联调时,发现前端传输的生僻字参数时会使服务端报错(非生僻字正常):java.lang.IllegalStateException: java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1。异常栈最先抛出的是 MalformedInputException,这个类的包名关键字是 charset,感觉像是编码问题导致的。本地跑测试用例未复现。

使用Wireshark抓包

        本地使用Wireshark抓包的时候,但是报文中中文显示为点符号。如下图所示 

中文显示问题

        这是Wireshark的默认显示问题,不是抓包错误。Wireshark默认将非ASCII字符显示为点(.),需要配置才能正确显示中文。

Wireshark默认配置

  • ASCII-only显示:默认只显示ASCII字符(0x00-0x7F)

  • 非ASCII转为点号:中文、日文、韩文等都显示为点符号

解决方案

        查看包的字节流,具体操作如下图所示

        然后显示为选择为urf-8即可显示出中文。本地测试生僻字显示正常无问题

问题原因

        前端同学按照同样的方式抓包操作,发现传输的时候生僻字即便选择urf-8也不能显示正确如下图所示。前端反馈调用了浏览器的一些接口,处理特殊字符的编码存在问题。

======================

喜欢求个关注,回归持续更新

======================

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐