具有非标准UTF-8字符的mongoDB

时间:2011-09-21 11:42:03

标签: java jsp mongodb character-encoding websphere

在MongoDB中插入异常字符时出现问题。

字符如下:éèíìáàà... etc

基本上,这些字符主要用于拉丁美洲国家。

当我通过脚本插入它时(因为如果我在控制台中尝试它,它会回复“非utf-8字符”)它做得很好,好吧,它将它添加到集合中,但有一些奇怪的字符。

如果我做了一个发现,让我们说,“Olá”,我有一个用“Olá”搜索的字段,但是那些奇怪的字符,它回复了我想要的字段上的数据...... 但是,如果在该字段中存在某种不是您的标准英文字典的字符,它会显示如下内容:

�til?

有什么方法可以解决这个问题吗?

我正在使用Websphere Portal服务器,PortletView文件输出为UTF-8,servlet处理输入的数据,在发送到db进行查询时以UTF-8对其进行编码,并且它还处理它检索的数据从DB到UTF-8(只是为了确定)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

检查servlet过滤器是否导致请求使用不正确的字符编码。在将请求的字符编码设置为getParameterXXX()之前,可以通过在ServletRequest上调用UTF-8系列方法之一来解决此问题。

servlet spec表示默认使用ISO8859-1。请参阅 SRV.3.9请求数据编码

还要确保响应使用正确的内容类型(带编码)。正如上面评论中所述:

String contentType= "text/html;charset=UTF-8";
response.setContentType(contentType);