<?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>泛城科技技术博客一行命令 &#187; 泛城科技技术博客</title>
	<atom:link href="http://tech.lezi.com/archives/tag/%e4%b8%80%e8%a1%8c%e5%91%bd%e4%bb%a4/feed" rel="self" type="application/rss+xml" />
	<link>http://tech.lezi.com</link>
	<description></description>
	<lastBuildDate>Fri, 04 Jan 2013 09:18:45 +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>一行Linux命令查找所有非UTF-8编码的文件，再一行命令，都转换成UTF-8</title>
		<link>http://tech.lezi.com/archives/194</link>
		<comments>http://tech.lezi.com/archives/194#comments</comments>
		<pubDate>Thu, 06 Jan 2011 14:12:27 +0000</pubDate>
		<dc:creator>neilxp</dc:creator>
				<category><![CDATA[一行Linux命令]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[一行命令]]></category>

		<guid isPermaLink="false">http://tech.lezi.com/?p=194</guid>
		<description><![CDATA[开始之前，请先安装enca这个软件包。enca是Linux等系统下用来查看文件编码和转换文件编码的工具。 下面一行Linux命令能够查找当前目录下所有文件中，哪些文件不是UTF-8编码。我对文件加了些限制，用find命令时候，排除了所有目录下的.svn目录，且只查找后缀为.php的文件。 命令1 jw@~/sqlite&#62; find . ! -iregex '.*\.svn.*' -type f -name '*.php' -exec bash -c "enca -L zh_CN {}&#124;grep GB2312 &#62; /dev/null &#38;&#38; echo {}" \; ./sqlite_utility.php ./sqlite_result.php ./sqlite_forge.php ./sqlite_driver.php 既然找到了这些非UTF8编码的文件，接下来再用一条命令将他们都转换成UTF8编码 命令2 jw@~/sqlite&#62; find . ! -iregex '.*\.svn.*' -type f -name '*.php' -exec bash -c "enca -L zh_CN {} &#124; grep GB2312 &#62;/dev/null &#38;&#38; [...]]]></description>
			<content:encoded><![CDATA[<p>开始之前，请先安装enca这个软件包。enca是Linux等系统下用来查看文件编码和转换文件编码的工具。</p>
<p>下面一行Linux命令能够查找当前目录下所有文件中，哪些文件不是UTF-8编码。我对文件加了些限制，用find命令时候，排除了所有目录下的.svn目录，且只查找后缀为.php的文件。</p>
<p>命令1</p>
<pre class="brush:bash">jw@~/sqlite&gt;
find . ! -iregex '.*\.svn.*' -type f -name '*.php' -exec bash -c "enca -L zh_CN {}|grep GB2312 &gt; /dev/null &amp;&amp; echo {}" \;
./sqlite_utility.php
./sqlite_result.php
./sqlite_forge.php
./sqlite_driver.php</pre>
<p>既然找到了这些非UTF8编码的文件，接下来再用一条命令将他们都转换成UTF8编码</p>
<p>命令2</p>
<pre class="brush:bash">jw@~/sqlite&gt;
find . ! -iregex '.*\.svn.*' -type f -name '*.php' -exec bash -c "enca -L zh_CN {}  | grep GB2312 &gt;/dev/null &amp;&amp; enconv -L zh_CN -x UTF-8 {}" \;</pre>
<p>当你用命令2 全部转换完成后，如果你期待命令1的输出为空，那么你就错了。实际上英语字母的utf8编码和ASCII编码是一样的。当一个全是英文字母的文件用UTF8 w/o BOM编码保存，那么enca会识别他是一个ACSII编码的文件。所以，你猜到了，命令2做了一些无用功:)</p>

	<h2>您也许会对以下文章感兴趣</h2>
	<ul class="st-related-posts">
	<li><a href="http://tech.lezi.com/archives/47" title="解决近期linux下yum更新出现HTTP Error 404 NOT FOUND错误的办法 (十月 28, 2010)">解决近期linux下yum更新出现HTTP Error 404 NOT FOUND错误的办法</a> (评论：3)</li>
	<li><a href="http://tech.lezi.com/archives/40" title="给rdesktop加一个图形界面GUI (十月 27, 2010)">给rdesktop加一个图形界面GUI</a> (评论：0)</li>
	<li><a href="http://tech.lezi.com/archives/75" title="Fedora/Ubuntu Linux下用wine安装腾讯通RTX成功 (十二月 8, 2010)">Fedora/Ubuntu Linux下用wine安装腾讯通RTX成功</a> (评论：1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://tech.lezi.com/archives/194/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
