`
fengjianquan9527
  • 浏览: 32908 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Eclipse 用PyDev开发中文问题解决

阅读更多
以前一直用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]
2
4
分享到:
评论

相关推荐

    python的eclipse

    3. **调试工具**: PyDev内建的调试器允许你设置断点、单步执行代码、查看变量值,以及跟踪调用栈,这对于解决问题非常有帮助。 4. **重构工具**: 提供多种重构选项,如重命名变量、提取方法等,以帮助你维护和优化...

    eclipse官网中文包

    总的来说,"eclipse官网中文包"是为了满足中国开发者需求的本地化解决方案,它使得Eclipse这款强大的开发工具更加贴近中国用户,提升了开发效率和使用舒适度。通过了解和掌握如何安装和使用这个中文包,开发者可以更...

    pydev安装教程

    PyDev 是一款非常流行的 Eclipse 插件,主要用于 Python 开发。它提供了强大的代码编辑、调试和代码完成功能,支持 Python、Jython 和IronPython等多种解释器。PyDev不仅适用于普通的Python应用开发,还能很好地支持...

    eclipse的中文插件

    为了帮助中国开发者更好地理解和使用Eclipse,出现了"eclipse的中文插件",它解决了英文界面带来的阅读和理解难题,使得Eclipse更加友好,尤其对初学者而言。 这款中文插件的主要功能包括将Eclipse的工作台、菜单、...

    Eclipse3.7中文使用教程

    通过阅读《Eclipse使用教程.pdf》和《Eclipse中文教程.pdf》,你可以深入掌握Eclipse3.7的基本使用和高级特性,无论你是初学者还是经验丰富的开发者,这些教程都将帮助你更好地利用Eclipse进行软件开发。请确保仔细...

    eclipse3.7.2汉化包

    Eclipse 3.7.2的汉化不仅限于界面,还包括帮助文档、错误提示和警告信息等,这对于学习和解决开发问题非常有帮助。此外,由于Eclipse具有高度的可扩展性,安装了汉化包后,你还可以继续添加其他的插件来扩展其功能,...

    Eclipse中文教程中文版、Eclips平台开发和学习

    本教程将围绕"Eclipse中文教程中文版、Eclips平台开发和学习"这一主题,深入探讨Eclipse的基础使用及平台开发。 一、Eclipse基础使用 1. **安装与启动**:首先,你需要从官方网站下载适合你操作系统的Eclipse版本...

    eclipse4.2汉化包

    7. **社区支持**:Eclipse的中文社区是获取帮助和支持的重要途径,可以在论坛上寻找解决汉化问题的方法,与其他用户交流经验。 总之,正确安装并使用Eclipse 4.2汉化包,能够使得中文用户更加顺畅地使用这一强大的...

    Eclipse中文教程.doc

    这个文档“Eclipse中文教程.doc”提供了一个基础篇,旨在帮助初学者理解并掌握Eclipse的使用。 1. **Eclipse简介**: Eclipse是一个开放源代码的软件开发平台,由Eclipse基金会维护。它不仅支持Java开发,还通过插件...

    eclipse 帮助文档

    Eclipse的汉语帮助文档是为了解决中国用户在使用过程中遇到的语言障碍,提供中文语言支持,帮助用户更好地理解和操作这个强大的工具。 Eclipse的帮助系统是其核心特性之一,它包含了大量的教程、参考指南和问题解决...

    eclipse3.5 汉化包

    Eclipse是一款广泛使用的开源集成开发环境(IDE),主要...总的来说,Eclipse 3.5 汉化包为中文用户提供了友好的使用环境,通过简单的安装步骤,用户可以轻松将Eclipse的界面转换为中文,从而更高效地进行开发工作。

    eclipse中文语言包

    "eclipse中文语言包"正是为解决这一问题而存在的,它提供了Eclipse界面的汉化服务,使用户可以更方便地理解和操作Eclipse的各项功能。 Eclipse中文语言包的安装过程如下: 1. **下载**:首先,你需要从可靠的来源...

    BabelLanguagePack-eclipse-zh_3.5.0.v20091121043401

    9. **Eclipse插件生态**:Eclipse的强大之处在于其丰富的插件生态系统,用户可以根据需求安装各种插件,例如Mylyn用于任务管理,PyDev支持Python开发,Maven插件则用于Java项目的构建和依赖管理等。 通过上述解析,...

    Eclipse中文教程

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中占据着重要的地位。本教程将深入探讨Eclipse的各个方面,帮助中文用户更好地理解和掌握这个强大的开发工具。 一、Eclipse概述 Eclipse起源于...

    Eclipse中文版练习.rar

    学会使用调试器能够有效定位和解决问题。 除了核心功能,Eclipse的插件生态系统是其一大亮点。例如,Mylyn可以帮助管理任务,PyDev用于Python开发,PDE则用于插件开发。了解如何查找、安装和使用这些插件将大大扩展...

    Eclipsea安装教程

    - **调试与问题解决**:遇到问题时,参考官方文档或社区论坛寻求解决方案。 #### 四、结语 通过本教程,您不仅学会了如何安装 Eclipse 和配置 Java 开发环境,还掌握了 Python 的安装方法及 PyDev 的集成过程。...

    Eclipse中文教程.rar

    Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java编程领域中占据着主导地位。它不仅支持Java,还提供了对C++, Python, PHP等多种语言的开发支持。本教程将全面解析Eclipse的各项功能和使用技巧,帮助...

    eclipse3.7-chs.rar

    如果你在使用过程中遇到任何问题,可以通过Eclipse社区或在线论坛寻求帮助,那里有众多开发者和热心人士为你解答疑惑。 Eclipse作为一个强大的开发工具,它的功能远远不止于此。例如,它支持插件如Mylyn用于任务...

Global site tag (gtag.js) - Google Analytics