Elasticsearch将变音符号显示为“ ??”

鲍勃

设置:

  • 通过VMWare快速安装的Ubuntu 12.04 Server
  • PostgreSQL 9.1
  • 弹性搜寻0.90
  • 单声道3.2.1
  • 滑轨4
  • Nginx 1.4.2 +乘客4.0.16

我有一个C#程序,开始时会写一个新的ElasticSearch索引,并将rails应用程序使用的别名指向它,然后该程序继续运行并监视redis实例以更新事物。

还有另一个C#程序会从网页上抓取数据,一旦抓取到的数据就会被放入Postgresql中,并且上面的索引编写器会通过Redis进行通知。这些页面具有不同的编码,并被转换为UTF-8。

该错误的初次出现是当我犯了一个错误,并将已经是UTF-8的数据再次编码为UTF-8时。

调查

现在我以为我显然正在发生一些数据损坏,但是奇怪的是:如果我杀死了该进程并从命令行手动启动,则只有在我通过nohup从rails启动indexing mono进程时,变音才损坏。很好。

当我对数据库进行备份/还原时,它可以从Web界面再次工作,但是一旦服务器重新启动,变音符将再次替换为??。从Web界面启动单声道进程时。

我要做的第一件事是从数据库中清除受影响的行,然后再次刮取数据(没有对其进行两次编码),这没有帮助,因为错误仅在通过Rails应用程序中的nohup以非交互方式运行时才出现我以为是因为语言环境设置,所以我在/ etc / defaults / locale和/ etc / environment中都将其更改为en_US.UTF-8和en_US:en,但这都没有帮助。

我真的不知道我还能做些什么或究竟是什么导致了此错误,所以不胜感激。

编辑:当变音符号替换为??时,我忘了澄清最重要的部分 索引中的每个文档都会替换所有变音符号。

吉尔·范古普(Jilles van Gurp)

将其放在用于启动过程的脚本中:

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8

脚本在您手动启动时仅选择UTF-8的原因是,这些内容不是系统范围的。我以前用jruby和init.d脚本遇到过这种情况,解决方案是不依赖于默认值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法显示德语变音符号

来自分类Dev

无法显示德语变音符号

来自分类Dev

带有变音符号的特殊字符在Android中显示为正方形

来自分类Dev

阿拉伯变音符号在Elasticsearch中无视

来自分类Dev

MySQL-PHP Select-不显示变音符号

来自分类Dev

如何正确显示groff中的波兰变音符号?

来自分类Dev

如何在页面上自动显示变音符号?

来自分类Dev

在索引时间将变音符号删除到Solr中

来自分类Dev

如何处理将变音符号与UnicodeUtils结合使用?

来自分类Dev

无法通过卷曲将变音符号发布到solr

来自分类Dev

在索引时间将变音符号删除到Solr中

来自分类Dev

如何将文本与变音符号匹配?

来自分类Dev

RedirectToAction()打破变音符号

来自分类Dev

不能写变音符号

来自分类Dev

Java删除变音符号

来自分类Dev

大写重音符号显示为“?”

来自分类Dev

PHP –为什么显示一些变音符号却不显示?

来自分类Dev

Python:删除希腊变音符号/重音符号

来自分类Dev

Qt SQL Server和变音符号

来自分类Dev

编码变音符号的怪异问题

来自分类Dev

无法验证包含变音符号的文本

来自分类Dev

使用Go删除变音符号

来自分类Dev

变音符号上的Levenshtein距离

来自分类Dev

在列表/集中存储变音符号

来自分类Dev

AngularJs搜索并忽略变音符号

来自分类Dev

从iOS到PHP的变音符号

来自分类Dev

字符串编码变音符号

来自分类Dev

Webfont没有变音符号

来自分类Dev

无法验证包含变音符号的文本