为什么 Solr 管理查询页面将 UTF-8 解释为 ISO-8859-1



我在Win6.0.35 64位上部署了一场战争,当我在Solr Admin中使用全界面查询页面(我的意思是form.jsp)查询2个汉字(假设是C1C2)时,调试信息显示:

<lst name="debug">
  <str name="rawquerystring">æ°è</str>
  <str name="querystring">æ°è</str>
  <str name="parsedquery">NEWSID:æ°è</str>
  <str name="parsedquery_toString">NEWSID:æ°è</str>
...

你可以看到 C1C2 变成 æ°è。我将相同的战争文件部署到 Linux 上的 Tomcat 或我同事计算机的另一个 Win7 64 位上,编码效果很好。有谁知道为什么以及如何避免这个问题?

提前感谢!

我解决了这个问题。邪恶的是Win7的文件虚拟化功能。默认情况下,Win7 将在几个众所周知的文件夹上启用此功能,例如 Windows、程序文件、程序数据等。效果是,在某些情况下,文件将具有双重内容,而这恰好发生在我的服务器上.xml。

解决方法是清理"c:\Users\

~~~ 我是怎么发现这个问题的(你可能不需要看到这个)~~~

两个字:"纯运气"。当我使用一些xml编辑器编辑tomcat用户时.xml并添加一个用户"test"。我重新启动 Tomcat,但无法登录以使用管理器 UI。我重新检查了雄猫用户.xml并看到该用户确实已设置。即使我卸载了不同版本的Tomcat,登录仍然失败。

然后我使用记事本编辑 tomcat-users.xml我很惊讶地看到它是 Tomcat 安装的原始版本。使用记事本编辑并重新启动Tomcat后,我现在可以登录了。

很快,我的思绪闪到了服务器上.xml我用记事本去看它。啊哈!连接器标记中没有 URI 编码属性。修复后,问题就解决了。

艾普洛格

就我而言,我的xml编辑器和IE都显示错误的版本,但我的其他浏览器和记事本显示正确的版本。我仍然不知道Win7在文件虚拟化上使用什么算法,所以我认为解决方法会存在一段时间。

最新更新