<?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://www.yigle.net/tag/%e6%ad%a3%e5%88%99%e8%a1%a8%e8%be%be%e5%bc%8f/feed" rel="self" type="application/rss+xml" />
	<link>http://www.yigle.net</link>
	<description>学习,生活,追求与梦想</description>
	<lastBuildDate>Mon, 19 Jul 2010 05:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>行结束符\r\n？</title>
		<link>http://www.yigle.net/2009/12/line-ending-character-r-n.html</link>
		<comments>http://www.yigle.net/2009/12/line-ending-character-r-n.html#comments</comments>
		<pubDate>Sun, 13 Dec 2009 05:49:08 +0000</pubDate>
		<dc:creator>rong179</dc:creator>
				<category><![CDATA[Web技术]]></category>
		<category><![CDATA[回车符]]></category>
		<category><![CDATA[换行符]]></category>
		<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://www.yigle.net/?p=36868</guid>
		<description><![CDATA[\r 0X0A 回车，return
\n 0X0D 换行，newline
我们在平时使用电脑时，已经习惯了回车和换行一次搞定，敲一个回车键，即是回车，又是换行，但在早期的打字机上，要另起一行打字需要两个步骤，首先要发送命令&#8221;\r”将打字头复位，即回车，然后再发送命令&#8221;\n”让打字机走纸移到下一行，所以这个历史遗留问题导致了如今我们在DOS-Win的系统中用&#8221;\r\n”作为“行结束符”，但在基于Unix的操作系统中使用&#8221;\n”,mac中使用“\r”。
win下，用UltraEdit打开文本查看，会看到换行处显示的是0x0D0A,0x0D即&#8221;\r”，0x0A即&#8221;\n”。  有时候在文本文件中出现■这样的符号，是因为没有&#8221;\r\n&#8221;连用，导致不能正确回车换行。
]]></description>
			<content:encoded><![CDATA[<p>\r 0X0A 回车，return<br />
\n 0X0D 换行，newline</p>
<p>我们在平时使用电脑时，已经习惯了回车和换行一次搞定，敲一个回车键，即是回车，又是换行，但在早期的打字机上，要另起一行打字需要两个步骤，首先要发送命令&#8221;\r”将打字头复位，即回车，然后再发送命令&#8221;\n”让打字机走纸移到下一行，所以这个历史遗留问题导致了如今我们在DOS-Win的系统中用&#8221;\r\n”作为“行结束符”，但在基于Unix的操作系统中使用&#8221;\n”,mac中使用“\r”。</p>
<p>win下，用UltraEdit打开文本查看，会看到换行处显示的是0x0D0A,0x0D即&#8221;\r”，0x0A即&#8221;\n”。  有时候在文本文件中出现■这样的符号，是因为没有&#8221;\r\n&#8221;连用，导致不能正确回车换行。</p>
<p>在处理字符时可以将“行结束符”统一处理成“\n”，然后再进一步处理，如：</p>
<p>php:</p>
<div class="geshi no php"><script>function plains(o){var st="";o.parents(".geshi");o.chlidren("li").each(function(i){st+=this.innerHTML.replace(/\<[^\>]*?\>/g,"")+"<br />";});var newW= window.open("","Plain","height=400, width=600,top=0, left=0,resizable=yes,scrollbars=yes");newW.document.write(st);}</script>
<div class="toolbar"><a onclick="plains($(this))">Plain</a></div>
<ol>
<li class="li1">
<div class="de1"><span class="co1">// cross-platform newlines</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$str</span> <span class="sy0">=</span> <span class="kw3">str_replace</span><span class="br0">&#40;</span><span class="kw3">array</span><span class="br0">&#40;</span><span class="st0">&quot;<span class="es0">\r</span><span class="es0">\n</span>&quot;</span><span class="sy0">,</span><span class="st0">&quot;<span class="es0">\r</span>&quot;</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="sy0">,</span> <span class="re1">$str</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Javascript:</p>
<div class="geshi no javascript"><script>function plains(o){var st="";o.parents(".geshi");o.chlidren("li").each(function(i){st+=this.innerHTML.replace(/\<[^\>]*?\>/g,"")+"<br />";});var newW= window.open("","Plain","height=400, width=600,top=0, left=0,resizable=yes,scrollbars=yes");newW.document.write(st);}</script>
<div class="toolbar"><a onclick="plains($(this))">Plain</a></div>
<ol>
<li class="li1">
<div class="de1"><span class="co1">// cross-platform newlines</span></div>
</li>
<li class="li1">
<div class="de1">str.<span class="me1">replace</span><span class="br0">&#40;</span><span class="re0">/\r\n?/g</span>,<span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="br0">&#41;</span>;</div>
</li>
</ol>
</div>
<p>php读写文件时，fopen设置‘b’标志（强制二进制模式，不会做任何转换）。或者设置&#8217;t'标志（文本模式，win 会将\n转换成\r\n，（只当让文件具有可读性时设置吧））。</p>
<h3  class="related_post_title">也许你会喜欢</h3><ul class="related_post"><li><a href="http://www.yigle.net/2009/04/blogbus-cmt.html" title="blogbus Cmt博客大巴评论插件">blogbus Cmt博客大巴评论插件</a> (93)</li><li><a href="http://www.yigle.net/2009/04/what-is-gravatar.html" title="什么是Gravatar？">什么是Gravatar？</a> (12)</li><li><a href="http://www.yigle.net/2008/11/blogbus_gravata.html" title="让blogbus支持Gravatar">让blogbus支持Gravatar</a> (10)</li><li><a href="http://www.yigle.net/2009/06/%e4%b8%80%e4%b8%aa%e5%9f%9f%e5%90%8d%ef%bc%8c%e4%b8%80%e4%b8%aa%e4%ba%92%e8%81%94%e7%bd%91%e7%9a%84id.html" title="一个域名，一个互联网的ID">一个域名，一个互联网的ID</a> (8)</li><li><a href="http://www.yigle.net/2009/08/mo-radio.html" title="Mo Radio">Mo Radio</a> (4)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.yigle.net/2009/12/line-ending-character-r-n.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
