<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[运维进行时]]></title> 
<link>https://blog.liuts.com/index.php</link> 
<description><![CDATA[互联网运维与架构]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[运维进行时]]></copyright>
<item>
<link>https://blog.liuts.com/post/137/</link>
<title><![CDATA[Linux下python中文编码的问题]]></title> 
<author>root &lt;admin@yourname.com&gt;</author>
<category><![CDATA[Python]]></category>
<pubDate>Thu, 22 May 2008 14:01:58 +0000</pubDate> 
<guid>https://blog.liuts.com/post/137/</guid> 
<description>
<![CDATA[ 
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;同样的程序在WIN下跑正常，在Linux下跑读取个别文件会提示“UnicodeDecodeError: 'gbk' codec can't decode bytes in position 30664-30665: illegal multibyte sequence”<br/>这是因为遇到了非法字符——尤其是在某些用C/C++编写的程序中，全角空格往往有多种不同的实现方式，比如&#92;xa3&#92;xa0，或者&#92;xa4&#92;x57，这些字符，看起来都是全角空格，但它们并不是“合法”的全角空格（真正的全角空格是&#92;xa1&#92;xa1），因此在转码的过程中出现了异常。<br/>按网上的方法是这样解决：<br/>s.decode('gbk', 'ignore').encode('utf-8')<br/>因为decode的函数原型是decode([encoding], [errors='strict'])，可以用第二个参数控制错误处理的策略，默认的参数就是strict，代表遇到非法字符时抛出异常；<br/>如果设置为ignore，则会忽略非法字符；<br/>如果设置为replace，则会用?取代非法字符；<br/>如果设置为xmlcharrefreplace，则使用XML的字符引用。<br/><br/>我的解决方法是直接忽略非法字符：<br/>s.decode('gbk', 'ignore') <br/>Tags - <a href="https://blog.liuts.com/tags/%25E4%25B8%25AD%25E6%2596%2587%25E7%25BC%2596%25E7%25A0%2581/" rel="tag">中文编码</a>
]]>
</description>
</item><item>
<link>https://blog.liuts.com/post/137/#blogcomment15</link>
<title><![CDATA[[评论] Linux下python中文编码的问题]]></title> 
<author>L &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Tue, 12 Jan 2010 02:23:30 +0000</pubDate> 
<guid>https://blog.liuts.com/post/137/#blogcomment15</guid> 
<description>
<![CDATA[ 
	非法字符?可能更多的是所使用的编码不当
]]>
</description>
</item>
</channel>
</rss>