<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CodePy.Net &#187; decode</title>
	<atom:link href="http://codepy.net/tag/decode/feed" rel="self" type="application/rss+xml" />
	<link>http://codepy.net</link>
	<description>专注网络开发：Python,PHP,Vim,Linux 分享我的快乐 -- Share My Happiness</description>
	<lastBuildDate>Sun, 15 Jan 2012 16:20:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Python 中的编码小结</title>
		<link>http://codepy.net/2009/04/04/python.html</link>
		<comments>http://codepy.net/2009/04/04/python.html#comments</comments>
		<pubDate>Sat, 04 Apr 2009 07:55:16 +0000</pubDate>
		<dc:creator>ruitao</dc:creator>
				<category><![CDATA[编程语言]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://codepy.net/?p=108</guid>
		<description><![CDATA[这几天在写一个爬虫，抓取指定网站的某些内容，中文网站的编码大概有两种：GB2312和UTF8。这里顺便就把写Python中要注意的一些内容汇聚一下，作为笔记。 1.文件头声明 对于python文件中包含中文的，应该在该文件头进行声明，加入： 1 # -*- coding: utf-8 -*- 一般的python文件头我都是用这一个模板： 1 2 3 4 5 #!/usr/bin/env python # -*- coding: utf-8 -*- &#160; &#34;&#34;&#34;docstring &#34;&#34;&#34; 我使用VIM作为编辑器，希望每次创建python文件时都按照上面的模板创建，于是在~/.vim目录下面建了一个templates目录，用来存放模板文件，把上面那个目标拷贝保存为python.tpl，存放在之前创建好的~/.vim目录下。然后在~/.vimrc中添加： 1 autocmd BufNewFile *.py 0r ~/.vim/templates/python.tpl 这样就能保证每次写的python文件能够保持一致的编码方式。更多用vim写python可以参考之前的《 在vim中编写python 》这篇文章。 2.python中的两种字符串 事实上，python是有两种&#8221;字符串&#8221;，在python2.6的官方文档中，有Strings 和Unicode Strings 两种Strings。 对于它们之间的相互转换以及GB2312与UTF8的互转，还有encode和decode，在啄木鸟的WIKI上面有详细的解释： http://wiki.woodpecker.org.cn/moin/PyEnCode 简单的说，其实encode1就是将unicode的字符串转换为特定编码，诸如“GB2312,UTF8”之类。 而decode2就是将本地编码转换为unicode编码的字符串。 所以，比如说要将GB2312转换为UTF8，那么就先将GB2312 decode再encode成UTF8即可，反之亦然。 编码解码]]></description>
			<content:encoded><![CDATA[<p>这几天在写一个爬虫，抓取指定网站的某些内容，中文网站的编码大概有两种：GB2312和UTF8。这里顺便就把写Python中要注意的一些内容汇聚一下，作为笔记。</p>
<p><strong>1.文件头声明</strong></p>
<p>对于python文件中包含中文的，应该在该文件头进行声明，加入：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span></pre></td></tr></table></div>

<p>一般的python文件头我都是用这一个模板：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">#!/usr/bin/env python</span>
<span style="color: #808080; font-style: italic;"># -*- coding: utf-8 -*-</span>
&nbsp;
<span style="color: #483d8b;">&quot;&quot;&quot;docstring
&quot;&quot;&quot;</span></pre></td></tr></table></div>

<p>我使用VIM作为编辑器，希望每次创建python文件时都按照上面的模板创建，于是在~/.vim目录下面建了一个templates目录，用来存放模板文件，把上面那个目标拷贝保存为python.tpl，存放在之前创建好的~/.vim目录下。然后在~/.vimrc中添加：</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">autocmd BufNewFile <span style="color: #000000; font-weight: bold;">*</span>.py 0r ~<span style="color: #000000; font-weight: bold;">/</span>.vim<span style="color: #000000; font-weight: bold;">/</span>templates<span style="color: #000000; font-weight: bold;">/</span>python.tpl</pre></td></tr></table></div>

<p>这样就能保证每次写的python文件能够保持一致的编码方式。更多用vim写python可以参考之前的《 <a class="title" rel="bookmark" href="../2009/02/08/code-python-in-vim.html">在vim中编写python</a><span class="title"> 》这篇文章。</span></p>
<p><strong><span class="title">2.python中的两种字符串</span></strong></p>
<p><span class="title">事实上，python是有两种&#8221;字符串&#8221;，在python2.6的官方文档中，有</span><a href="http://docs.python.org/tutorial/introduction.html#strings" target="_blank">Strings</a> 和<a href="http://docs.python.org/tutorial/introduction.html#unicode-strings" target="_blank">Unicode Strings</a> 两种Strings。</p>
<p>对于它们之间的相互转换以及GB2312与UTF8的互转，还有encode和decode，在啄木鸟的WIKI上面有详细的解释：</p>
<blockquote><p><a href="http://wiki.woodpecker.org.cn/moin/PyEnCode">http://wiki.woodpecker.org.cn/moin/PyEnCode</a></p>
</blockquote>
<p>简单的说，其实encode<sup><a href="http://codepy.net/2009/04/04/python.html#footnote_0_108" id="identifier_0_108" class="footnote-link footnote-identifier-link" title="编码">1</a></sup>就是将unicode的字符串转换为特定编码，诸如“GB2312,UTF8”之类。<br />
而decode<sup><a href="http://codepy.net/2009/04/04/python.html#footnote_1_108" id="identifier_1_108" class="footnote-link footnote-identifier-link" title="解码">2</a></sup>就是将本地编码转换为unicode编码的字符串。<br />
所以，比如说要将GB2312转换为UTF8，那么就先将GB2312 decode再encode成UTF8即可，反之亦然。</p>
<ol class="footnotes"><li id="footnote_0_108" class="footnote">编码</li><li id="footnote_1_108" class="footnote">解码</li></ol>]]></content:encoded>
			<wfw:commentRss>http://codepy.net/2009/04/04/python.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

