个人随笔
目录
springboot RequestBody 接受中文参数乱码原因之一
2024-03-12 16:37:54

突然发现RequestBody接受参数中文乱码了,本地没问题,服务器上总是报错,并且只有中文大于3个字符才报错,奇怪

  1. Caused by: com.fasterxml.jackson.core.JsonParseException: Invalid UTF-8 start byte 0xa4
  2. at [Source: (PushbackInputStream); line: 1, column: 24]
  3. at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)
  4. at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:707)
  5. at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._reportInvalidInitial(UTF8StreamJsonParser.java:3601)

看了linux服务器的编码,尽然是GBK,然后springboot代码里面明明用的UTF-8还不会自动切换,无语了,只能在启动脚本加上

  1. public static void main(String[] args) {
  2. //解决linux服务器编码不是UTF-8会导致springboot @RequestBody获取参数乱码的问题
  3. System.setProperty("file.encoding","UTF-8");
  4. try {
  5. Field charset = Charset.class.getDeclaredField("defaultCharset");
  6. charset.setAccessible(true);
  7. charset.set(null,null);
  8. }catch(Exception e){
  9. e.printStackTrace();
  10. }
  11. SpringApplication.run(MdpMgrServerApplication.class, args);
  12. }

然后就可以了

 45

啊!这个可能是世界上最丑的留言输入框功能~


当然,也是最丑的留言列表

有疑问发邮件到 : suibibk@qq.com 侵权立删
Copyright : 个人随笔   备案号 : 粤ICP备18099399号-2