IT追梦者

Programming
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Java String.getBytes()引起的问题

Posted on 2012-05-25 20:26  星龙冰  阅读(871)  评论(0编辑  收藏  举报

  公司有人开发了一个Memcached客户端,其中当set和get时会对StringValue调用getBytes()方法将字节数组存到memcached服务器。

这里有一个很不合理的地方:getBytes()是跟特定平台的字符编码相关的操作。当一个默认ISO-8859-1的系统平台运行这段代码把一个UTF-8编码的字符串存入memcached服务器时,就会导致编码信息丢失出现乱码。显然这个实现方式很不合理。

从api设计的角度,String.getBytes()也不怎么合理,感觉应该强制使用getBytes("chareset"),以引起大家注意字符编码可能导致信息丢失的问题。