因字符集不支持中文造成的问题

昨晚解决了一个看似不可能的问题。同样的一段代码,在本地windows环境下就是没有问题,但是在生产环境下死活过不去。大致为对接受到的消息做验签,但签名原文中有中文字符,生产环境的字符集不支持中文导致验签不通过。
发现问题的过程是痛苦的,尤其是这种看似一点问题都没有的程序。尤其还是协助客户调试这个问题。最后是在一个偶然的情况下找到了问题的原因。我把最核心的验签方法提取出来,数据采用生产环境中截获的数据,放在main方法中,在生产环境下编译、运行。javac时,系统报出了警告,提示字符集不支持,真给力!这个提示太重要了。马上修改字符集,尝试了几个,终于成功了,那一刻很开心。刚才在本地找了个AIX的机器,用了个不支持中文的字符集试了下,结果javac时报出error: IO exception sun.io.MalformedInputException。查了查,差不多也是因为字符集的原因,不过要是报这个的话,估计找起原因来就不那么好定位了。

你可能感兴趣的:(安全)