let &termencoding=&encoding
set encoding=cp936
set langmenu=zh_CN.UTF-8
set fileencodings=ucs-bom,utf-8,cp936,big5,euc-jp,euc-
kr,gb18030,latin1
set helplang=cn
还有个问题是,win下的ansi格式文件,我用gvim转换编码为utf-8,竟然转不过去,很让我抓狂啊。
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN
我鄙视微软一下。浪费了我好多时间。
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个
文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
我鄙视微软一下。浪费了我好多时间。
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个
文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
我鄙视微软一下。浪费了我好多时间。
微软自己的行为?!
我XXXXX。
去年用版本旧一点的 sphinx 做文档时,就碰到过这个问题。(http://sphinx.pocoo.org/changes.html 见0.6.2的changelog)
我用 vim 在 ubuntu 下用得好好的,同事拿到 windows 下改了一下就编译不过了。
当找到这个原因后,同事说,标准的 UTF8 前面就有这三个字节。我当时就不明白为什么只有 UTF8 有特别的标识,而其它格式的没有。而且 vim 自己创建的 UTF8 的文件是没有这三个多余的字节的。vim 真的放所谓的“标准”不管?
那么现在结论是,这又是一个 windows only 的东西?
在 2010年4月23日 下午2:53,feelsky <vincen...@gmail.com>写道:
微软在自己的UTF-8格式的文本文件之前加上了EF BB BF三个字节, windows上面的notepad等程序就是根据这三个字节来确定一个
文本文件是ASCII的还是UTF-8的, 然而这个只是微软暗自作的标记, 其它平台上并没有对UTF-8文本文件做个这样的标记。
我鄙视微软一下。浪费了我好多时间。
--
From: Yesheng Zou
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
这个说法的症结是:按照规定 utf-8 本身的标准是不应当有BOM的。
而UCS-2和UTF16标准规定必须要有BOM。后来微软认为应当“允许并提倡对utf-8增加bom”。但是POSIX/Linux阵营对此有较大的意见,认为utf-8不应当加BOM,因为加bom的utf-8违背了unix的很多假定,导致经典的unix程序有bug。
POSIX认为文件应当是纯净的可分拆和拼接的字节流。而带bom的utf-8文件无法被简单的分拆和拼接(会导致无bom或者双bom的文件)。
现实情况是,加BOM的utf-8文件会导致许多 POSIX/Linux工具处理起来存在问题。——最常见的例子就是 gcc 拒绝编译任何带
bom 的 utf-8 文件。
所以,结论就是:如果你使用Linux,那么utf-8不应当带bom,如果使用windows,那么最好是不要使用notepad。
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
Subscription settings: http://groups.google.com/group/python-cn/subscribe?hl=zh-CN
windows notepad 不能正确处理不带 bom 的 utf-8 文件。事实上貌似 vc 也不行。
微软建议 utf-8 文件一定要带 bom
linux 建议 utf-8 文件一定不要带 bom
2010/4/24 Yesheng Zou <yeshe...@gmail.com>:
> 当找到这个原因后,同事说,标准的 UTF8 前面就有这三个字节。我当时就不明白为什么只有 UTF8 有特别的标识,而其它格式的没有。而且 vim这个说法的症结是:按照规定 utf-8 本身的标准是不应当有BOM的。
> 自己创建的 UTF8 的文件是没有这三个多余的字节的。vim 真的放所谓的“标准”不管?
>
> 那么现在结论是,这又是一个 windows only 的东西?
>
而UCS-2和UTF16标准规定必须要有BOM。后来微软认为应当“允许并提倡对utf-8增加bom”。但是POSIX/Linux阵营对此有较大的意见,认为utf-8不应当加BOM,因为加bom的utf-8违背了unix的很多假定,导致经典的unix程序有bug。
POSIX认为文件应当是纯净的可分拆和拼接的字节流。而带bom的utf-8文件无法被简单的分拆和拼接(会导致无bom或者双bom的文件)。
现实情况是,加BOM的utf-8文件会导致许多 POSIX/Linux工具处理起来存在问题。——最常见的例子就是 gcc 拒绝编译任何带
bom 的 utf-8 文件。
所以,结论就是:如果你使用Linux,那么utf-8不应当带bom,如果使用windows,那么最好是不要使用notepad。
当初windows下的python处理带bom的脚本也会崩溃,我还曾去提交过这个bug。
--
立志在女儿把我搞崩溃前把她养大:(
--
来自: `python-cn`:CPyUG ~ 华蟒用户组 | 发言:pyth...@googlegroups.com
退订: http://tinyurl.com/45a9tb //针对163/qq邮箱:http://tinyurl.com/4dg6hc
详情: https://groups.google.com/group/python-cn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp