B65024a818a1283259729da5481f388f

octopress在windows下出现的字符集错误

ypchenOctopress 節點 中發起
最後由 chendeshen回應 , 2283次閱讀

上次我是在虚拟机下安装ubuntu 10.4 然后部署octopress不成功
后来 我在windows下使用RailsInstaller环境(我的日志 http://yanping.me/cn/?p=85) octopress第一次是可以部署的

如果贴英文帖子 没有问题 但是如果有汉字 在rake generate 这部就有异常

Liquid error: incompatible character encodings: UTF-8 and GBK

是否有办法解决呢?

PS:我在北京 系统是windows XP 简体中文版

2012-12-26 更新:
问题已解决 请看http://chen.yanping.me/cn/blog/2011/12/26/octopress-on-windows/

截至 ,共收到 28 條回應
398a828efed96a19a5d80309ce775313
southwolf 1樓, 於回應

請入鄉隨俗,使用繁體字…雖然我也是大陸來的 XD
linux環境下,RoR環境配置應該比WIN下簡單啊…
而且GBK這種編碼問題也就只有在Windows底下才會碰到吧…
按照以往的經驗,遇上這種問題一般是需要在相關的.rb/.html.erb文件第一行加入

`# encoding: utf-8`
19e786a2a74377ff6e052d87fd8d1fa8
xdite 2樓, 於回應

octopress 需要跑在 Ruby 1.9.2 下。所以撞到 encoding 是很常見的。

通常只要在第一行加入

encoding: utf-8 就解了...

B65024a818a1283259729da5481f388f
ypchen 3樓, 於回應

#2楼 @xdite 在哪些文件加呢?

F2dcf6633971844e19ca96ea294ba976
eddie 4樓, 於回應

@ypchen 我想1樓有回答到你的問題囉 :)

B65024a818a1283259729da5481f388f
ypchen 5樓, 於回應

#4楼 @eddie 关键是 在相關的.rb/.html.erb文件 指的是哪些呢

9a8cb668611685adf49a745d90090f87
geekontheway 6樓, 於回應

可以使用magic encoding,给项目中的所有.rb/.rake/.erb文件加上encoding注释,你可以上github看看

B65024a818a1283259729da5481f388f
ypchen 7樓, 於回應
9a8cb668611685adf49a745d90090f87
geekontheway 8樓, 於回應

#7楼 @ypchen

........
magicencoding 用法是 magic_encoding 字符集 程序目录 ,不过有一个缺点就是,这个命令只会为.rb文件添加encoding,看它的代码是这样的:

rbfiles = File.join(directory ,"**", "*.rb")
所以你可能要修改一下源代码再运行才可以为所有文件都添加上注释,另外,你的ruby版本是不是1.9.2的,或者说 你的rvm中是怎么设置的,我用ruby1.9.2没遇到过这个问题,ruby ree[1.8.7]会报错

magicencoding的源文件
http://github.com/m-ryan/magic_encoding

9a8cb668611685adf49a745d90090f87
geekontheway 9樓, 於回應

@ypchen推荐还是用Ubuntu部署,windows下Ruby on rails还不是很完善,你在Ubuntu下部署了有任何问题可以找我,我就是在mac+Ubuntu下同时部署的,我的页面是
http://geekontheway.github.com

B65024a818a1283259729da5481f388f
ypchen 10樓, 於回應

#8楼 @geekontheway 我是在windows下 安装的是RailsInstaller 里面的ruby就是1.9.2 的
所有文件指的是哪些呢? html 和 css算上吗?

9a8cb668611685adf49a745d90090f87
geekontheway 11樓, 於回應

@ypchen不是啊 只有rb/rake

241f416bcc4236e4b2af26be9925dddf
laoyang945 12樓, 於回應

#10樓 @ypchen
我用win7架設的,一切都ok
不過我在環境變量裡面增設了LC_ALL=zh_CN.UTF-8和LANG=zh_CN.UTF-8

B65024a818a1283259729da5481f388f
ypchen 13樓, 於回應

#12樓 @laoyang945 写的中文博客吗? 这环境变量在哪里设置呢? 你用的ruby 也是RailsInstaller里的吗

00ced3a6cdfd0398fabe0717147a6a32
We_Get 15樓, 於回應

@ypchen 我找不到这个文件,我的系统是win7 ,请问 @laoyang945 这个文件应该在什么地方,手工建立起来可以吗?

2a01ae9942939ee2b3954a6727d2bb92
tonytonyjan 16樓, 於回應
00ced3a6cdfd0398fabe0717147a6a32
We_Get 17樓, 於回應

@tonytonyjan 那个之前就看过了,但是我一直没找到那两句配置应该加在那里,我是win7的系统。
他上面说加到cmd里,怎么加进去呢?

00ced3a6cdfd0398fabe0717147a6a32
We_Get 18樓, 於回應

我家里的电脑是没有问题的,估计跟我办公室电脑没有安装中文字符集有关。
天煞的,尽然不给安装中文字符集。

B65024a818a1283259729da5481f388f
ypchen 19樓, 於回應

#18樓 @We_Get 问一下@laoyang945 他是win 7的系统 我的是XP的 这两种系统在环境变量上还是有差异的吧

B65024a818a1283259729da5481f388f
ypchen 20樓, 於回應

#12樓 @laoyang945 你好 请问你在win 7下如何设置的? 你的环境变量是在哪里设置的 我是该主目录下的配置文件 你呢?

B65024a818a1283259729da5481f388f
ypchen 21樓, 於回應

#17樓 @We_Get 你试试启动cmd以后 运行下面两行

set LC_ALL=en_US.UTF-8
set LANG=en_US.UTF-8

http://github.com/mojombo/jekyll/issues/188 里面说的

另外 我问问你 你安装RailsInstaller以后 怎么进到shell里的? 是cmd 还是RailsInstaller自带的 git term

00ced3a6cdfd0398fabe0717147a6a32
We_Get 22樓, 於回應

@ypchen 是用 RailsInstaller自带的 git term 进去的。
果然我在 shell 界面里执行这两句后现在是不会报这个问题了。
果断直接写入 bat 文件中。

哭了,现在连昨天搞不定的副标题使用中文的问题也解决了,太感谢了。

感谢 @ypchen ~

B65024a818a1283259729da5481f388f
ypchen 23樓, 於回應

#22樓 @We_Get 但是这种方法每次都要在shell 里输这两行命令
奇怪了 我觉得那命令错了 应该是

set LC_ALL=zh_CN.UTF-8 
set LANG=zh_CN.UTF-8 

用en_US.UTF-8也成功吗?
你再试试另一个方法吧 只是我的猜想 我也没有win7的环境可以测试
windows里设置环境变量你知道在哪儿吧 右键“我的电脑”--》属性--》。。。 设置环境变量

在用户自定义环境变量里 加入LC_ALL 值为zh_CN.UTF-8 加入LANG 值为zh_CN.UTF-8

00ced3a6cdfd0398fabe0717147a6a32
We_Get 24樓, 於回應

@ypchen
我办公室的win7是没有权限的,所以我也不想去修改系统本身的设定。
把上面那两具加到 bat 文件里就可以了,现在已经可以正常运行了。
set LC_ALL=zh_CN.UTF-8
set LANG=zh_CN.UTF-8
这个,没试呢,应该不一样的吧。
之前出错时因为默认的ansi编码不支持gb码,所以汉字会乱码,会出错,改成 set LC_ALL=en_US.UTF-8 后,再用ansi utf8的格式存储文件就没有问题了。

D68abef84f78f8657664de25db895105
Arthur 25樓, 於回應

@ypchen @We_Get
按照上面的讨论内容在环境变量里设置了LC_ALL和LANG两个变量,把Post转成了UTF-8编码,可是貌似post上面的YAML被识别成了Post问的一部分,而没有应用样式....请问是问什么....

B65024a818a1283259729da5481f388f
ypchen 26樓, 於回應

#25樓 @Arthur 你把文件发上来看看吧

48a6837ef22061c45acb8445a638a6f2
chendeshen 27樓, 於回應

learnt~~~

48a6837ef22061c45acb8445a638a6f2
chendeshen 28樓, 於回應

把全部文件都用utf-8保存,解决所有问题,亲测有效。

需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊