Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 2/Ruby 1.8.7的字符编码问题(“xFFFD”)有解决方案吗?_Ruby On Rails_Ruby_Encoding_Character Encoding - Fatal编程技术网

Ruby on rails Rails 2/Ruby 1.8.7的字符编码问题(“xFFFD”)有解决方案吗?

Ruby on rails Rails 2/Ruby 1.8.7的字符编码问题(“xFFFD”)有解决方案吗?,ruby-on-rails,ruby,encoding,character-encoding,Ruby On Rails,Ruby,Encoding,Character Encoding,从列表中可以看到主要的新功能: 告别编码问题 如果你以任何频率浏览互联网,你可能会遇到� 性格这个问题非常普遍,是由混合和匹配不同编码的内容引起的 在Rails这样的系统中,内容来自数据库、模板、源文件和用户。Ruby 1.9为我们提供了消除这些问题的原始工具,结合Rails 3,� 在Rails应用程序中,这应该是过去的事情了。永远不要再与来自Microsoft Word的用户粘贴的损坏数据作斗争 我有一个应用程序,用户经常粘贴来自MS Word的文本,我们正好遇到了这个问题 然而,我们正在运

从列表中可以看到主要的新功能:

告别编码问题

如果你以任何频率浏览互联网,你可能会遇到� 性格这个问题非常普遍,是由混合和匹配不同编码的内容引起的

在Rails这样的系统中,内容来自数据库、模板、源文件和用户。Ruby 1.9为我们提供了消除这些问题的原始工具,结合Rails 3,� 在Rails应用程序中,这应该是过去的事情了。永远不要再与来自Microsoft Word的用户粘贴的损坏数据作斗争

我有一个应用程序,用户经常粘贴来自MS Word的文本,我们正好遇到了这个问题

然而,我们正在运行Rails2和Ruby1.8.7。目前还没有改变这一状况的希望

我认为编码问题通常表现为排印者的引号(“卷曲引号”)。可能还有em破折号和省略号之类的字符

我想知道是否有例行程序可以对传入的数据运行,以克服这个问题

如果引号变成了直引号,省略号变成了三个句号,等等,都没关系

它甚至可以是一个在系统级运行的实用程序,我可以用它从我的应用程序中调用

processed_data = `system_command #{params[:incoming_data]}`

您可以使用rchardet gem来检测传入字符串的编码,并使用内置Iconv libs来转换需要转换的字符串:

require ‘rchardet’

[...]

cd = CharDet.detect(params[:my_upload_form][:uploaded_file])
encoding = cd['encoding']

converted_string = Iconv.conv(‘UTF-8′, encoding, params[:my_upload_form][:uploaded_file])
本例使用的是上传的文件,但您当然可以将其应用于来自文本区域的数据,或者您认为用户可能正在以非您想要的编码粘贴数据的任何地方


不知羞耻地从位于的善良绅士那里借来。

如果您碰巧在Windows后端,您可能会在这方面有一些运气,并且有一个代码示例()。否则,你知道问题出在哪里吗?文本是粘贴到纯文本区域/文本字段中,还是来自WYSIWYG元素,或者完全是其他内容?谢谢。好建议。我不知道那颗宝石。不过,我不确定这是否能解决这个问题。这似乎有点不可预测,但也许我会试一试。