公司有人开发了一个Memcached客户端,其中当set和get时会对StringValue调用getBytes()方法将字节数组存到memcached服务器。
这里有一个很不合理的地方:getBytes()是跟特定平台的字符编码相关的操作。当一个默认ISO-8859-1的系统平台运行这段代码把一个UTF-8编码的字符串存入memcached服务器时,就会导致编码信息丢失出现乱码。显然这个实现方式很不合理。
从api设计的角度,String.getBytes()也不怎么合理,感觉应该强制使用getBytes("chareset"),以引起大家注意字符编码可能导致信息丢失的问题。