怎么看一个文本文件的编码

打开记事本,菜单“文件”-“打开”,找到目标文件,选中,这时下面的编码中显示的就是这个文件的编码,ANSI, Unicode, Unicode big endian, UTF-8。

Quixote对unicode的处理,目前不知道有没有完全搞定,之前PTL文件里title如果是中文会报错:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 46: ordinal not in range(128)

把quixote目录下的__init__.py中DEFAULT_CHARSET从iso-8859-1改为utf-8。

http_request.py中的iso-8859-1改为utf-8。(这个不改好像也没事?)

在Python的lib/site-packages/目录下新建一个文件sitecustomize.py:

import  sys
sys.setdefaultencoding(
' utf-8 ' )

(参考: http://hi.baidu.com/dushm/blog/item/95597acb5373431dbe09e6af.html

现在不报错了,不知道会不会再碰到错误。

转载一篇讨论Quixote处理unicode的豆瓣文章:


http://www.douban.com/group/topic/1001002/

请问quixote如何能更好的支持utf-8
    2005-06-27 09:06:43   来自: dryice

  我最近看mail list,
  好象大家觉得quixote对utf-8的支持还不太好:
  http://mail.mems-exchange.org/pipermail/quixote-users/2005-June/004871.html
  
  不过显然豆瓣已经很好的解决了这个问题 :)
  能不能请阿北兄介绍一下在 quixote 里面用 utf-8有哪些需要注意的问题?
  谢谢!


   
2005-06-27 11:47:58 阿北 (北京)

  你引的讨论里其实用的是u'unicode', 不是utf-8。直接用unicode的确问题很多,豆瓣有过一版是那样的,太麻烦,后来放弃了。
  
  用utf-8就没有什么的问题, 因为utf-8的字串就是普通的str类。你只需要:
  
  1. 用一个utf-8编码的编辑器编辑ptl, 并且在ptl或者有关的.py文件里加
   # -*- coding: utf-8 -*-
  
  2. 把html的header设好:
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  
  3. 在合适的地方(比如根url的_q_access. 我是在Publisher的start_request里)加上:
  
   request.response.set_content_type('text/html; charset=utf-8')
  
  就好了。
  
  如果你用数据库的话,需要注意一下varchar或者text的编码,还有往来数据库api里的编码。
  
  就这些了。
  
  无论你觉得简单还是麻烦,今天做网站已经没有理由舍弃utf-8去用gb2312.
  


   
2005-06-28 08:34:58 仨儿 (北京)

  是也乎!Unicode 是王道哪!
  其实Python 在处理一切非ASII 码时就是以Unicode 格式处理的,
  说白了 Unicode 是编码的字节码状态,utf8 utf16 gb1803 gb1312 等等,都是unicode 的编码存储格式,只是现在所有浏览器都支持utf8 的时候,没有理由使用gb2312 来拒绝国际浏览者是也乎…………


   
2005-06-28 21:46:41 dryice

  好象阿北兄用的是1.x ?
  我在用2.0,好象有点不一样
  让我再看一看...
  
  另外我原来以为只要设了 response 的 charset 就好了
  为什么还要在<head>里写那行<meta> ?


   
2005-06-30 11:17:45 dryice

  2.0 里面我一用 set_charset('utf-8')
  就会出一个UnicodeEncodeError
  晕。 刚才一气之下把quixote里面的所有iso-8859-1换成了utf-8
  不知道会不会有问题
  现在已经可以在PTL里面写中文了
  正在调数据库
  
  再问个问题:
  如果我一个有form的页, charset是utf-8
  是不是返回的内容就是utf-8的了?
  我想这个工作是浏览器的吧?


   
2005-07-02 02:28:04 阿北 (北京)

  form是这样。
  
  出UnicodeEncodeError应该是你在ptl的什么地方用了u'...', 或者用了decode('utf-8')。
  
  <head>里<meta>一定要写。这两个就像信封和信纸,都需要charset.


   
2005-07-03 23:22:29 dryice

  多谢。看了这篇文章:
  http://www.onlamp.com/pub/a/python/excerpt/pythonckbk_chap1/
  我决定还是先用u'unicode'这样的试试
  目前看起来还好 :)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值