java.util.MissingFormatArgumentException: Format specifier %E9%9B%A8%E6%B1%A1

解析出错

问题
java.util.MissingFormatArgumentException: Format specifier ‘%E’

解读

String.format(decodeStr, args)
解析的String 存在 %E9%9B%A8%E6%B1%A1就会报错
最简单的方法是是将 整个string放在里面转成带有汉字或其他字符就不会报错【% 上网查询是占位符】,后面没有替换的字符导致报错

解决办法
先string 内带有%E9%9B%A8%E6%B1%A1转换中文。


            try {
                String decodeStr= URLDecoder.decode(format, "utf-8");//显示中文字体
                String.format(decodeStr, args);//再使用string
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            

下面转换例子

编码

String Str = URLEncoder.encode("雨污", "utf-8");  
System.out.println("处理后:" + Str); 

//处理后:%E9%9B%A8%E6%B1%A1

解码

String Str = URLDecoder.decode(Str, "utf-8");  
System.out.println("解码:" + Str);  

//解码:雨污

你可能感兴趣的:(java.util.MissingFormatArgumentException: Format specifier %E9%9B%A8%E6%B1%A1)