<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: [原]php处理base64编码和Unicode客户端交互的问题</title>
	<link>http://bianbian.org/technology/144.html</link>
	<description>便便代码人生: 关注技术, 翻译文档, 偶尔动动手</description>
	<pubDate>Fri, 09 Jan 2009 14:14:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: bianbian</title>
		<link>http://bianbian.org/technology/144.html#comment-680</link>
		<dc:creator>bianbian</dc:creator>
		<pubDate>Mon, 19 Mar 2007 10:32:22 +0000</pubDate>
		<guid>http://bianbian.org/technology/144.html#comment-680</guid>
		<description>你说的对，是针对字节流的编码。现在问题就是UTF-16的BOM标记缺失。如果是FEFF的拿FFFE解码就会是乱码。</description>
		<content:encoded><![CDATA[<p>你说的对，是针对字节流的编码。现在问题就是UTF-16的BOM标记缺失。如果是FEFF的拿FFFE解码就会是乱码。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 平客</title>
		<link>http://bianbian.org/technology/144.html#comment-679</link>
		<dc:creator>平客</dc:creator>
		<pubDate>Mon, 19 Mar 2007 04:58:56 +0000</pubDate>
		<guid>http://bianbian.org/technology/144.html#comment-679</guid>
		<description>呵呵，不错，研究的很透彻，不过有一点不太准确，就是base64只针对byte,其实base64的本质用意是什么吧，就是比如你有一个二进制文件，如果你想“打印”出来怎么办？里面什么样的字符都有，有些根本就不是可打印字符。而通过base64编码，就可以将任何二进制流转成人眼或打印机可识别的字符。这其实最早用于邮件传输附件，因为邮箱正文肯定是可打印字符，但是附件可以是任意二进制文件。而以前的邮箱服务器无法传输任意的二进制流。
    换句话说，比如我们有一个很重要的可执行文件，保存在磁盘上怕坏了，放网站上怕丢了。呵呵，这时，我们可以将它“打印”在纸上保存起来。
    也就是先把*.exe二进制流转成base64编码，当然转化后都是可打印字符。然后打印在纸上。我再把纸给你，你原样一个一个字符转成文件文件，再把文本文件通过base64解码，还原成二进制流，这样，就相当于我的程序保存在我们平常所用的“纸上”了。哈哈。当然，你肯定想到了，保存一个几十K的小程序就得很厚的一叠纸。没办法，base64编码后要比二进制多好多的字节。
    在我们的项目中，我是把unicode字符串进行base64编码了，这并不是说base64只能对ansi编码，其实只要是二进制流，都可以的，更不用说unicode字符串了，它不就是一段二进制流吗？关键是解码后你要知道原来的是unicode？还是ansi,更或者是一幅图片的数据呢，还是一个程序的二进制代码。</description>
		<content:encoded><![CDATA[<p>呵呵，不错，研究的很透彻，不过有一点不太准确，就是base64只针对byte,其实base64的本质用意是什么吧，就是比如你有一个二进制文件，如果你想“打印”出来怎么办？里面什么样的字符都有，有些根本就不是可打印字符。而通过base64编码，就可以将任何二进制流转成人眼或打印机可识别的字符。这其实最早用于邮件传输附件，因为邮箱正文肯定是可打印字符，但是附件可以是任意二进制文件。而以前的邮箱服务器无法传输任意的二进制流。<br />
    换句话说，比如我们有一个很重要的可执行文件，保存在磁盘上怕坏了，放网站上怕丢了。呵呵，这时，我们可以将它“打印”在纸上保存起来。<br />
    也就是先把*.exe二进制流转成base64编码，当然转化后都是可打印字符。然后打印在纸上。我再把纸给你，你原样一个一个字符转成文件文件，再把文本文件通过base64解码，还原成二进制流，这样，就相当于我的程序保存在我们平常所用的“纸上”了。哈哈。当然，你肯定想到了，保存一个几十K的小程序就得很厚的一叠纸。没办法，base64编码后要比二进制多好多的字节。<br />
    在我们的项目中，我是把unicode字符串进行base64编码了，这并不是说base64只能对ansi编码，其实只要是二进制流，都可以的，更不用说unicode字符串了，它不就是一段二进制流吗？关键是解码后你要知道原来的是unicode？还是ansi,更或者是一幅图片的数据呢，还是一个程序的二进制代码。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
