恩,就是这个文件 https://github.com/ruby-china/ruby-china/blob/master/lib/markdown.rb
本地 mac 环境跑起来没啥问题,但是生产服务器上一旦出现 #1 楼 或者 @中文 的时候就会乱码~
补充: 数据存在 Mongodb 里的~
如下
2.0.0-p353 :002 > r = Reply.last
2.0.0-p353 :004 > r.body
=> "#18楼 @iceskysl 测试乱码~~"
2.0.0-p353 :005 > html = MarkdownTopicConverter.format(r.body)
=> "<p><a href=\"#reply18\" class=\"at_floor\" data-floor=\"18\">#18楼</a> <a href=\"/iceskysl\" class=\"at_user\" title=\"@iceskysl\"><i>@</i>iceskysl</a> æµÂ\u008Bè¯Â\u0095ä¹±ç Â\u0081~~</p>"
我把那段提出来直接在 irb 里测试是 ok 的,如下
2.0.0-p353 :006 > content = "#18楼 @iceskysl 测试乱码~~"
=> "#18楼 @iceskysl 测试乱码~~"
2.0.0-p353 :007 > html = content.gsub(/#(\d+)([楼樓Ff])/) {
2.0.0-p353 :008 > %(<a href="#reply#{$1}" class="at_floor" data-floor="#{$1}">##{$1}#{$2}</a>)
2.0.0-p353 :009?> }
=> "<a href=\"#reply18\" class=\"at_floor\" data-floor=\"18\">#18楼</a> @iceskysl 测试乱码~~"
2.0.0-p353 :010 > puts html
<a href="#reply18" class="at_floor" data-floor="18">#18楼</a> @iceskysl 测试乱码~~
服务器环境
[root@i-p0z03ogo ~]# ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
[root@i-p0z03ogo ~]# rails -v
Rails 4.0.1
何解?