【发布时间】:2011-09-22 01:04:42
【问题描述】:
在 MongoDB 中插入异常字符时遇到问题。
字符如下:é è í ì á à...等
基本上是拉丁国家常用的字符。
当我通过脚本插入它时(因为如果我在控制台中尝试它,它会回复“非 utf-8 字符”)它做得很好,嗯,它会将它添加到集合中,但带有一些奇怪的字符。
如果我进行查找,比如说“Olá”,并且我有一个用“Olá”搜索的字段,但使用那些奇怪的字符,它会回复我想要的字段上的数据就好了...... 但是,如果在该字段中存在某种不是标准英文字符类型的字符,则会显示如下内容:
�til?
有什么办法可以解决吗?
我正在使用 Websphere Portal 服务器,PortletView 文件以 UTF-8 输出,servlet 在发送到数据库进行查询时处理输入的数据以 UTF-8 对其进行编码,并且它还处理它检索到的数据从 DB 转换为 UTF-8(只是为了确定)。
提前致谢。
【问题讨论】:
-
检查 servlet 过滤器是否不会导致请求使用不正确的字符编码。这可能是由于调用
ServletRequest上的getParameterXXX()系列方法之一在 将请求的字符编码设置为UTF-8。 -
好吧,当我在 DB 和 servlet 之间传输字符串时,我正在做一个转换……将它从 servlet 带到 portletview 时可能会出现问题……
-
看来,在 servlet 的
doPost()中,在我调用response.getWriter()之前,我应该执行以下操作:String contentType= "text/html;charset=UTF-8";response.setContentType(contentType);如果您愿意,可以发布这是一个答案,我会接受它,因为我似乎无法这么快就自己的问题发布答案。
标签: java jsp mongodb character-encoding websphere