以前一直用pycharm开发Python。今天心血来潮想在Eclipse上用Python写点东西,发现Eclipse下面PyDev开发有中文的问题(错误:SyntaxError: Non-ASCII character),在文件头写上#coding:utf8也不行,Eclipse的所有环境都配置了UTF8,依然不行。
后来突发奇想会不会是UTF8的BOM的问题导致的?果断将文件用Notepad++打开一看,该文件是以UTF-8无BOM格式编码,于是乎,果断将其改成以UTF-8BOM格式编码,加载到PyDev中一执行,果然OK了。改回原来的,依然报之前的语法错误。
由此推断:Eclipse是不会给UTF-8文件添加BOM,导致中文乱码问题。
补习一下什么是BOM:
BOM(Byte Order Mark):简单说就是一个签名、告诉编辑器当前文档采用何种编码,方便编辑器识别。
UTF8 BOM又叫做UTF8的签名,其实对UTF8没用作用,因为UTF8是以字节为编码单元的,没有字节序的问题。而UTF-16:2个字节 UTF-32:4个字节,这样就会有顺序的问题了,为了支持UTF-16、UTF-32才加上的。
如何使用BOM头
BOM头的删除
对UTF-16, Python将BOM解码为空字串。然而对UTF-8, BOM被解码为一个字符,如例:
>>> codecs.BOM_UTF16.decode( "utf16" ) u''
>>> codecs.BOM_UTF8.decode( "utf8" ) u'\ufeff'
简单的做法是在文件读入时使用
import codecs
f = codecs.open(sys.argv[1],'r', 'utf_8_sig')
即可,具体可以参见[http://docs.python.org/library/codecs.html#module-encodings.utf_8_sig|http://docs.python.org/library/codecs.html#module-encodings.utf_8_sig]
或者:
u.lstrip( unicode( codecs.BOM_UTF8, "utf8" ) )
BOM头的添加
out = file( "someFile", "w" )
out.write( codecs.BOM_UTF8 )
out.write( unicodeString.encode( "utf-8" ) )
out.close()out = file( "someFile", "w" )out.write( codecs.BOM_UTF8 )out.write( unicodeString.encode( "utf-8" ) )out.close()
详细的过程解释可以参见[http://mindprod.com/jgloss/encoding.html|http://mindprod.com/jgloss/encoding.html]
分享到:
相关推荐
3. **调试工具**: PyDev内建的调试器允许你设置断点、单步执行代码、查看变量值,以及跟踪调用栈,这对于解决问题非常有帮助。 4. **重构工具**: 提供多种重构选项,如重命名变量、提取方法等,以帮助你维护和优化...
总的来说,"eclipse官网中文包"是为了满足中国开发者需求的本地化解决方案,它使得Eclipse这款强大的开发工具更加贴近中国用户,提升了开发效率和使用舒适度。通过了解和掌握如何安装和使用这个中文包,开发者可以更...
PyDev 是一款非常流行的 Eclipse 插件,主要用于 Python 开发。它提供了强大的代码编辑、调试和代码完成功能,支持 Python、Jython 和IronPython等多种解释器。PyDev不仅适用于普通的Python应用开发,还能很好地支持...
为了帮助中国开发者更好地理解和使用Eclipse,出现了"eclipse的中文插件",它解决了英文界面带来的阅读和理解难题,使得Eclipse更加友好,尤其对初学者而言。 这款中文插件的主要功能包括将Eclipse的工作台、菜单、...
通过阅读《Eclipse使用教程.pdf》和《Eclipse中文教程.pdf》,你可以深入掌握Eclipse3.7的基本使用和高级特性,无论你是初学者还是经验丰富的开发者,这些教程都将帮助你更好地利用Eclipse进行软件开发。请确保仔细...
Eclipse 3.7.2的汉化不仅限于界面,还包括帮助文档、错误提示和警告信息等,这对于学习和解决开发问题非常有帮助。此外,由于Eclipse具有高度的可扩展性,安装了汉化包后,你还可以继续添加其他的插件来扩展其功能,...
本教程将围绕"Eclipse中文教程中文版、Eclips平台开发和学习"这一主题,深入探讨Eclipse的基础使用及平台开发。 一、Eclipse基础使用 1. **安装与启动**:首先,你需要从官方网站下载适合你操作系统的Eclipse版本...
7. **社区支持**:Eclipse的中文社区是获取帮助和支持的重要途径,可以在论坛上寻找解决汉化问题的方法,与其他用户交流经验。 总之,正确安装并使用Eclipse 4.2汉化包,能够使得中文用户更加顺畅地使用这一强大的...
这个文档“Eclipse中文教程.doc”提供了一个基础篇,旨在帮助初学者理解并掌握Eclipse的使用。 1. **Eclipse简介**: Eclipse是一个开放源代码的软件开发平台,由Eclipse基金会维护。它不仅支持Java开发,还通过插件...
Eclipse的汉语帮助文档是为了解决中国用户在使用过程中遇到的语言障碍,提供中文语言支持,帮助用户更好地理解和操作这个强大的工具。 Eclipse的帮助系统是其核心特性之一,它包含了大量的教程、参考指南和问题解决...
Eclipse是一款广泛使用的开源集成开发环境(IDE),主要...总的来说,Eclipse 3.5 汉化包为中文用户提供了友好的使用环境,通过简单的安装步骤,用户可以轻松将Eclipse的界面转换为中文,从而更高效地进行开发工作。
"eclipse中文语言包"正是为解决这一问题而存在的,它提供了Eclipse界面的汉化服务,使用户可以更方便地理解和操作Eclipse的各项功能。 Eclipse中文语言包的安装过程如下: 1. **下载**:首先,你需要从可靠的来源...
9. **Eclipse插件生态**:Eclipse的强大之处在于其丰富的插件生态系统,用户可以根据需求安装各种插件,例如Mylyn用于任务管理,PyDev支持Python开发,Maven插件则用于Java项目的构建和依赖管理等。 通过上述解析,...
Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中占据着重要的地位。本教程将深入探讨Eclipse的各个方面,帮助中文用户更好地理解和掌握这个强大的开发工具。 一、Eclipse概述 Eclipse起源于...
学会使用调试器能够有效定位和解决问题。 除了核心功能,Eclipse的插件生态系统是其一大亮点。例如,Mylyn可以帮助管理任务,PyDev用于Python开发,PDE则用于插件开发。了解如何查找、安装和使用这些插件将大大扩展...
- **调试与问题解决**:遇到问题时,参考官方文档或社区论坛寻求解决方案。 #### 四、结语 通过本教程,您不仅学会了如何安装 Eclipse 和配置 Java 开发环境,还掌握了 Python 的安装方法及 PyDev 的集成过程。...
Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中占据着主导地位。它不仅支持Java,还提供了对C++, Python, PHP等多种语言的开发支持。本教程将全面解析Eclipse的各项功能和使用技巧,帮助...
如果你在使用过程中遇到任何问题,可以通过Eclipse社区或在线论坛寻求帮助,那里有众多开发者和热心人士为你解答疑惑。 Eclipse作为一个强大的开发工具,它的功能远远不止于此。例如,它支持插件如Mylyn用于任务...