<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[┢┦aρｐy bullet╯blog]]></title>
  <subtitle type="html"><![CDATA[---专注WEB技术，关注生活点滴……]]></subtitle>
  <id>http://www.mysheji.com/blog/</id> 
  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.mysheji.com/blog/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.4.1022">PJBlog2</generator> 
  <updated>2008-07-04T00:48:19+08:00</updated> 

  <entry>
	  <title type="html"><![CDATA[基于JQuery框架的AJAX]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=15" label="Development" /> 
	  <updated>2008-07-04T00:48:19+08:00</updated>
	  <published>2008-07-04T00:48:19+08:00</published>
		  <summary type="html"><![CDATA[看代码，看注释<textarea name="code" class="xml" rows="15" cols="100">
&lt;div id=&#34;result&#34; style=&#34;background:orange;border:1px solid red;width:300px;height:400px;&#34;&gt;&lt;/div&gt;&nbsp;&nbsp; 
&lt;form id=&#34;formtest&#34; action=&#34;&#34; method=&#34;post&#34;&gt;&nbsp;&nbsp; 
&lt;p&gt;&lt;span&gt;输入姓名:&lt;/span&gt;&lt;input type=&#34;text&#34; name=&#34;username&#34; id=&#34;input1&#34; /&gt;&lt;/p&gt;&nbsp;&nbsp; 
&lt;p&gt;&lt;span&gt;输入年龄:&lt;/span&gt;&lt;input type=&#34;text&#34; name=&#34;age&#34; id=&#34;input2&#34; /&gt;&lt;/p&gt;&nbsp;&nbsp; 
&lt;p&gt;&lt;span&gt;输入性别:&lt;/span&gt;&lt;input type=&#34;text&#34; name=&#34;sex&#34; id=&#34;input3&#34; /&gt;&lt;/p&gt;&nbsp;&nbsp; 
&lt;p&gt;&lt;span&gt;输入工作:&lt;/span&gt;&lt;input type=&#34;text&#34; name=&#34;job&#34; id=&#34;input4&#34; /&gt;&lt;/p&gt;&nbsp;&nbsp; 
&lt;/form&gt;&nbsp;&nbsp; 
&lt;button id=&#34;send_ajax&#34;&gt;AJAX提交&lt;/button&gt;&nbsp;&nbsp; 
&lt;button id=&#34;test_post&#34;&gt;POST提交&lt;/button&gt;&nbsp;&nbsp; 
&lt;button id=&#34;test_get&#34;&gt;GET提交&lt;/button&gt;&nbsp;&nbsp; 
</textarea><br/><br/><textarea name="code" class="js" rows="15" cols="100">&lt;script type=&#34;text/javascript&#34; src=&#34;jquery.js&#34;&gt;&lt;/script&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;script type=&#34;text/javascript&#34;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
//$.ajax()方式&nbsp;&nbsp;&nbsp;&nbsp;
$(document).ready(function (){&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp; $(&#39;#send_ajax&#39;).click(function (){ //直接把onclick事件写在了JS中，而不需要混在XHTML中了&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var params=$(&#39;input&#39;).serialize(); //序列化表单的值&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajax({&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; url ：&#39;ajax_test.php&#39;,&nbsp;&nbsp;//后台处理程序&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; type:&#39;post&#39;,&nbsp;&nbsp;&nbsp;&nbsp;//数据发送方式&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataType:&#39;json&#39;,&nbsp;&nbsp; //接受数据格式&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data:params,&nbsp;&nbsp; //要传递的数据&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success:up&#100;ate_page&nbsp;&nbsp;//回传函数(这里是函数名)&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;
});&nbsp;&nbsp;&nbsp;&nbsp;
function up&#100;ate_page (json) { //回传函数实体，参数为XMLhttpRequest.responseText&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var str=&#34;姓名:&#34;+json.username+&#34;&lt;br /&gt;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str+=&#34;年龄:&#34;+json.age+&#34;&lt;br /&gt;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str+=&#34;性别:&#34;+json.sex+&#34;&lt;br /&gt;&#34;;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; str+=&#34;工作:&#34;+json.job;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#34;#result&#34;).html(str);&nbsp;&nbsp;&nbsp;&nbsp;
}&nbsp;&nbsp;&nbsp;&nbsp;
//$.post()方式：&nbsp;&nbsp;&nbsp;&nbsp;
$(function (){ //$(document).ready(function (){ 的简写&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#39;#test_post&#39;).click(function (){&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.post(&#39;ajax_test.php&#39;,&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {username:$(&#39;#input1&#39;).val(),age:$(&#39;#input2&#39;).val(),sex:$(&#39;#input3&#39;).val(),job:$(&#39;#input4&#39;).val()},&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function (data){ //回传函数&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var myjson=&#39;&#39;;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval(&#39;myjson=&#39;+data+&#39;;&#39;);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#39;#result&#39;).html(&#34;姓名:&#34;+myjson.username+&#34;&lt;br /&gt;工作:&#34;+myjson[&#39;job&#39;]);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;
});&nbsp;&nbsp;&nbsp;&nbsp;
//$.get()方式：&nbsp;&nbsp;&nbsp;&nbsp;
$(function (){&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#39;#test_get&#39;).click(function (){&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $.get(&#39;ajax_test.php&#39;,&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {username:$(&#34;#input1&#34;).val(),age:$(&#34;#input2&#34;).val(),sex:$(&#34;#input3&#34;).val(),job:$(&#34;#input4&#34;).val()},&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function&nbsp;&nbsp;(data) {&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var myjson=&#39;&#39;;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval(&#34;myjson=&#34;+data+&#34;;&#34;);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $(&#34;#result&#34;).html(myjson.job);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; });&nbsp;&nbsp;&nbsp;&nbsp;
});&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/script&gt;&nbsp;&nbsp; 
</textarea><br/><br/><textarea name="code" class="php" rows="15" cols="100">&lt;?php&nbsp;&nbsp;&nbsp;&nbsp;
$arr = $_POST; //若以$.get()方式发送数据，则要改成$_GET.或者干脆:$_REQUEST&nbsp;&nbsp;&nbsp;&nbsp;
$myjson=json_encode($arr);&nbsp;&nbsp;&nbsp;&nbsp; 
echo $myjson;&nbsp;&nbsp;&nbsp;&nbsp;
?&gt;&nbsp;&nbsp;</textarea><br/><br/>嗯，再来一个例子：<br/><textarea name="code" class="js" rows="15" cols="100">&lt;script type=&#34;text/javascript&#34; src=&#34;jquery.js&#34;&gt;&lt;/script&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;script LANGUAGE=&#34;JavaScript&#34;&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&lt;!--&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function myajax(ajaxurl){&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#39;#LoadingStatus&#39;).show();//显示load状态条，以体现数据正在load&nbsp;&nbsp;&nbsp;&nbsp;
//下面是强大的jQuery $.ajax对象。&nbsp;&nbsp;&nbsp;&nbsp;
//url即为即将获取数据的那个地址，请不要跨域（如你的ajax网页的域是<a href="http://www.host1.com" target="_blank">http://www.host1.com</a>你的ajax将请求的url是<a href="http://www.host2.com" target="_blank">http://www.host2.com</a>则为跨域，这样的请求将返回错误）&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.ajax({url: ajaxurl,&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;type: &#39;GET&#39;,&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dataType: &#39;html&#39;,//html o&#114; xml返回的数据是html还是xml对象&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout: 20000,//超时时间设置，这里我们设置的是20秒 20 000毫秒&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error: function(){alert(&#39;error&#39;);$(&#39;#LoadingStatus&#39;).hide(2000);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//如果请求错误如何处理&nbsp;&nbsp;&nbsp;&nbsp;
//我们例子中的处理是：如果出现错误，则提示错误，然后隐藏load状态跳&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success: function(html){&nbsp;&nbsp;&nbsp;&nbsp;
//请求成功的处理&nbsp;&nbsp;&nbsp;&nbsp;
//如果请求成功：1.隐藏load条 2.将请求的数据写入到div中。&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// do something with xml&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#39;#LoadingStatus&#39;).hide(2000);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(&#39;#detail&#39;).html(html);&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;});//end of ajax&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;//--&gt;&nbsp;&nbsp;&nbsp;&nbsp;
&lt;/script&gt;&nbsp;&nbsp; 
</textarea><br/><br/><textarea name="code" class="xml" rows="15" cols="100">&lt;div id=&#34;LoadingStatus&#34; style=&#34;background:red;color:#fff;float:right;width:100px;display:none;border:1px solid #000;z-index:1000;&#34;&gt;Loading...&lt;/div&gt;&nbsp;&nbsp; 
&lt;div id=&#34;detail&#34; style=&#34;height:100px;width:100px;border:1px solid #ccc;&#34;&gt;&lt;/div&gt;&nbsp;&nbsp; 
&lt;input TYPE=&#34;text&#34; NAME=&#34;url&#34; id=&#39;url&#39;/&gt;&lt;input TYPE=&#34;button&#34; value=&#34;load&#34; onClick=&#34;myajax($(&#39;#url&#39;).val());&#34;/&gt;&nbsp;&nbsp; 
</textarea>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=800" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=800</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[关于Unicode字符集]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=15" label="Development" /> 
	  <updated>2008-06-27T13:42:00+08:00</updated>
	  <published>2008-06-27T13:42:00+08:00</published>
		  <summary type="html"><![CDATA[　　最初的unicode编码是固定长度的，16位，也就是2两个字节代表一个字符，这样一共可以表示65536个字符。显然，这样要表示各种语言中所有的字符是远远不够的。Unicode4.0规范考虑到了这种情况，定义了一组附加字符编码，附加字符编码采用2个16位来表示，这样最多可以定义1048576个附加字符，目前unicode4.0只定义了45960个附加字符。<br/><br/>Unicode只是一个编码规范，目前实际实现的unicode编码只要有三种：UTF-8,UCS-2和UTF-16，三种unicode字符集之间可以按照规范进行转换。<br/><br/><br/><strong>UTF-8</strong><br/><br/>UTF-8是一种8位的unicode字符集，编码长度是可变的，并且是ASCII字符集的严格超集，也就是说ASCII中每个字符的编码在UTF-8中是完全一样的。UTF-8字符集中，一个字符可能是1个字节，2个字节，3个字节或者4个字节长。一般来说，欧洲的字母字符长度为1到2个字节，而亚洲的大部分字符则是3个字节，附加字符为4个字节长。<br/><br/>Unix平台中普遍支持UTF-8字符集，HTML和大多数浏览器也支持UTF-8，而window和java则支持UCS-2。<br/><br/><strong>UTF-8的主要优点：</strong><br/><br/>对于欧洲字母字符需要较少的存储空间。 <br/>容易从ASCII字符集向UTF-8迁移。 <br/>UCS-2<br/><br/>UCS-2是固定长度为16位的unicode字符集。每个字符都是2个字节，UCS-2只支持unicode3.0，所以不支持附加字符。<br/><br/><strong>UCS-2的优点：</strong><br/><br/>对于亚洲字符的存储空间需求比UTF-8少，因为每个字符都是2个字节。 <br/>处理字符的速度比UTF-8更快，因为是固定长度编码的。 <br/>对于windows和java的支持更好。 <br/>UTF-16<br/><br/>UTF-16也是一种16位编码的字符集。实际上，UTF-16就是UCS-2加上附加字符的支持，也就是符合unicode4.0规范的UCS-2。所以UTF-16是UCS-2的严格超集。<br/><br/>UTF-16中的字符，要么是2个字节，要么是4个字节表示的。UTF-16主要在windows2000以上版本使用。<br/><br/>UTF-16相对UTF-8的优点，和UCS-2是一致的。<br/><br/>o&#114;acle从7.0开始提供对Unicode的支持。Oracle个版本的unicode字符集支主要有：<br/><br/>AL32UTF8<br/><br/>一种UTF-8编码的字符集，支持最新的unicode4.0标准。字符长度为1，2或者3个字节，附加字符则为4字节长。<br/><br/><strong>UTF8</strong><br/><br/>支持unicode3.0的UTF-8编码方式。由于附加字符是在unicode3.1中提出的，UTF8不支持附加字符。但是unicode3.0已经为附加字符预留了编码空间，所以即使在UTF8的数据库中插入附加字符，也是可以的，只是数据库会将该字符分隔成两部分，需要占6个字符的长度。所以，如果需要支持附加字符，那么建议将数据库的字符集切换为新的AL32UTF8。<br/><br/>UTF8可用于数据库字符集，也可用于国家字符集。<br/><br/><strong>UTFE</strong><br/><br/>UTFE是基于EBCDIC平台的unicode字符集，就像ASCII平台上的UTF8一样。不同的是，UTFE中，每个字符可能占1，2，3或者4个字节，而附加字符则需要2个4个字节，也就是8个字节来表示。<br/><br/><strong>AL16UTF16</strong><br/><br/>AL16UTF16是一种UTF-16编码的unicode字符集，在Oracle中用于国家字符集。<br/><br/><strong>AL24UTFFSS</strong><br/><br/>该字符集只支持unicode1.1规范，在Oracle7.2~8i版本中使用，目前已经淘汰。<br/><br/>另外几篇文章：<br/><a href="http://hi.baidu.com/joe7/blog/item/c50ba71e103b411b40341709.html" target="_blank">http://hi.baidu.com/joe7/blog/item/c50ba71e103b411b40341709.html</a><br/><a href="http://programtown.spaces.live.com/blog/cns!415819e52c8cf075!624.entry" target="_blank">http://programtown.spaces.live.com/blog/cns!415819e52c8cf075!624.entry</a>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=799" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=799</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[Web 前端最佳实践之内容篇]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=15" label="Development" /> 
	  <updated>2008-06-24T18:23:02+08:00</updated>
	  <published>2008-06-24T18:23:02+08:00</published>
		  <summary type="html"><![CDATA[Yahoo! 的 Exceptional Performance team 在 Web 前端方面作出了卓越的贡献。广为人知的优化规则也由 13 条 到 20 条再到现在的 34 条--真是与时俱进啊。最新的 34 条也针对不同的角度做了分类。<br/><br/>面向内容的优化规则目前有 10 条。<br/><br/><strong>1. 尽量减少 HTTP 请求 (Make Fewer HTTP Requests) </strong><br/>作为第一条，可能也是最重要的一条。根据 Yahoo! 研究团队的数据分析，有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求：<br/><br/>1) 合并文件，比如把多个 CSS 文件合成一个； <br/>2) CSS Sprites 利用 CSS background 相关元素进行背景图绝对定位；参见：CSS Sprites: Image Slicing&#39;s Kiss of Death <br/>3) 图像地图 <br/>4) 内联图象 使用 data: URL scheme 在实际的页面嵌入图像数据.<br/><br/><strong>2. 减少 DNS 查找 (Reduce DNS Lookups)</strong>必须明确的一点，DNS 查找的开销是很大的。另外，我倒是觉得这是 Yahoo! 所有站点的通病，Yahoo！主站点可能还不够明显，一些分站点，存在明显的类似问题。对于国内站点来说，如果过多的使用了站外的 Widget ，也很容易引起过多的 DNS 查找问题。<br/><br/><strong>3. 避免重定向 (Avoid Redirects)</strong>不是绝对的避免，尽量减少。另外，应该注意一些不必要的重定向。比如对 Web 站点子目录的后面添加个 / (Slash) ，就能有效避免一次重定向。<a href="http://www.dbanotes.net/arch" target="_blank">http://www.dbanotes.net/arch</a> 与 <a href="http://www.dbanotes.net/arch/" target="_blank">http://www.dbanotes.net/arch/</a> 二者之间是有差异的。如果是 Apache 服务器，通过配置 Alias 或mod_rewrite 或是 DirectorySlash 能够消除这个问题。<br/><br/><strong>4. 使得 <a href="http://www.okajax.com/info/net/20060510.html" target="_blank">Ajax</a> 可缓存 (Make <a href="http://www.okajax.com/info/net/20060510.html" target="_blank">Ajax</a> Cacheable)</strong><br/>响应时间对 <a href="http://www.okajax.com/info/net/20060510.html" target="_blank">Ajax</a> 来说至关重要，否则用户体验绝对好不到哪里去。提高响应时间的有效手段就是 Cache 。其它的一些优化规则对这一条也是有效的。 <br/><br/><strong>5. 延迟载入组件 (Post-load Components)</strong><br/><strong>6. 预载入组件 (Preload Components)</strong>上面两条严格说来，都是属于异步这个思想灵活运用的事儿。<br/><br/><strong>7. 减少 DOM 元素数量 (Reduce the Number of DOM Elements)</strong><br/><strong>8. 切分组件到多个域 (Split Components Across Domains)</strong>主要的目的是提高页面组件并行下载能力。但不要跨太多域名，否则就和第二条有些冲突了。<br/><br/><strong>9. 最小化 iframe 的数量 (Minimize the Number of iframes)</strong>熟悉 SEO 的朋友知道 iframe 是 SEO 的大忌。针对前端优化来说 iframe 有其好处，也有其弊端，一分为二看问题吧。<br/><br/><strong>10. 杜绝 http 404 错误 (No 404s)</strong>对页面链接的充分测试加上对 Web 服务器 error 日志的不断跟踪能有效减少 404 错误，亦能提升用户体验。值得一提的是，CSS 与 Java Script 引起的 404 错误因为定位稍稍&#34;难&#34;一点而往往容易被忽略。<br/><br/>这是内容篇的 10 条。应该说具体引导性的内容还不够详细。逐渐会根据自己的理解补充上来。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=798" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=798</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[美好的一天]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=28" label="Photos" /> 
	  <updated>2008-06-19T20:07:13+08:00</updated>
	  <published>2008-06-19T20:07:13+08:00</published>
		  <summary type="html"><![CDATA[下了很多天雨，终于又迎来了一个阳光灿烂的日子，心情也跟着Happy起来.<br/><br/><div align="center"><img src="http://www.mysheji.com/blog/attachments/month_0806/r2008619201324.jpg" border="0" alt=""/></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=797" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=797</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[介绍一种用ASP+模板生成Word、Excel、静态页面一种简单、灵活多变的办法]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=15" label="Development" /> 
	  <updated>2008-06-16T09:42:05+08:00</updated>
	  <published>2008-06-16T09:42:05+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;由于工作的需要，需要为客户做一个在线生成Excel及Word报表程序，参考了网上很多办法，大多数都是采用Excel.Application(<a href="http://www.blueidea.com/tech/program/2006/3547.asp" target="_blank">http://www.blueidea.com/tech/program/2006/3547.asp</a>)组件来生成，发现容易出错，而且对于大多数和我一样的菜鸟来说，比较麻烦，考虑到前些天用ASP+模板+adodb.stream生成静态页面的办法，经过多次尝试，终于掌握了一种用ASP+模板生成Excel和word的新的办法，现分享如下：<br/>&nbsp;&nbsp;&nbsp;&nbsp;<strong>用模板生成Excel、Word最大优点：</strong>&nbsp;&nbsp;&nbsp;&nbsp;Word、Excel文档样式易于控制和调整，以往用Excel.Application来生成Excel、Word，需要写很多代码来控制排版的样式，用模版几乎不受任何限制，只需要打开word或Excel，编辑文档，选择&#34;文件-&gt;另存为web页&#34;，即可方便的做好模板 ，用office生成的模板要比直接在DW中做好模板更加符合office偏好，生成后文件样式可与原word、Excel格式99%一样，因此建议大家用office（office97～office2003）直接来生成模板框架。<br/><br/>&nbsp;&nbsp; 演示：<a target="_blank" href="http://mysheji.com/aspCr&#101;ate/">http://mysheji.com/aspCr&#101;ate/</a><br/>&nbsp;&nbsp;&nbsp;&nbsp;主要代码：<div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>&#39;欢迎与我交流和学习<br/>&#39;作者：幸福的子弹<br/>&#39;BLOG:<a href="http://mysheji.com/blog" target="_blank">http://mysheji.com/blog</a><br/>&#39;E-mail:zhaojiangang@gmail.com<br/>&#39;QQ:37294812<br/>&#39;-----------------------------------------------------------------------------<br/>&#39;开启容错机制 <br/>on error resume next <br/>&#39;功能，检测服务器是否支持指定组件<br/>Function object_install(strclassstring)<br/>&nbsp;&nbsp;on error resume next<br/>&nbsp;&nbsp;object_install=false<br/>&nbsp;&nbsp;dim xtestobj<br/>&nbsp;&nbsp;set xtestobj=server.cr&#101;ateobject(strclassstring)<br/>&nbsp;&nbsp;if -2147221005 &lt;&gt; Err then object_install=true<br/>&nbsp;&nbsp;set xtestobj=nothing<br/>end function<br/>if object_install(&#34;Scripting.FileSystemobject&#34;)=false then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;&lt;div style=&#39;font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana&#39;&gt;对不起，您的空间不支持FSO组件，请与管理员联系!&lt;/div&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.End<br/>end if<br/>if object_install(&#34;adodb.stream&#34;)=false then<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;&lt;div style=&#39;font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana&#39;&gt;对不起，您的空间不支持adodb.stream功能，请与管理员联系!&lt;/div&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.End<br/>end if<br/>&#39;-----------------------------------------------------------------------------<br/>&#39;函数名称:ReadTextFile<br/>&#39;作用:利用AdoDb.Stream对象来读取文本文件<br/>&#39;参数：FileUrl文件相对路径，FileCharSet:文件编码<br/>Function ReadFromTextFile (FileUrl,FileCharSet)&#39;函数<br/>&nbsp;&nbsp;&nbsp;&nbsp;dim str<br/>&nbsp;&nbsp;&nbsp;&nbsp;set stm=server.Cr&#101;ateObject(&#34;adodb.stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.Type=2 &#39;指定或返回的数据类型,<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.mode=3 &#39;指定打开模式，现在为可以读写模式，类似于word的只读或锁定功能<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.charset=FileCharSet<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.open<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.loadfromfile server.MapPath(FileUrl)<br/>&nbsp;&nbsp;&nbsp;&nbsp;str=stm.readtext<br/>&nbsp;&nbsp;&nbsp;&nbsp;ReadFromTextFile=str<br/>End Function<br/>&#39;-----------------------------------------------------------------------------<br/>&#39;函数名称:WriteToTextFile<br/>&#39;作用:利用AdoDb.Stream对象来写入文本文件<br/>sub WriteToTextFile(FileUrl,Str,FileCharSet) &#39;方法<br/>&nbsp;&nbsp;&nbsp;&nbsp;set stm=server.Cr&#101;ateObject(&#34;adodb.stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.Type=2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.mode=3<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.charset=FileCharSet<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.open<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.WriteText str<br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.SaveToFile server.MapPath(FileUrl),2 <br/>&nbsp;&nbsp;&nbsp;&nbsp;stm.flush<br/>End sub<br/>&#39;-----------------------------------------------------------------------------<br/>&#39;功能：自动创建文件夹<br/>&#39;创建一级或多级目录，可以创建不存在的根目录<br/>&#39;参数：要创建的目录名称，可以是多级<br/>&#39;返回逻辑值，True成功，False失败<br/>&#39;创建目录的根目录从当前目录开始<br/>Function Cr&#101;ateMultiFolder(ByVal CFolder)<br/>Dim objFSO,PhCr&#101;ateFolder,Cr&#101;ateFolderArray,Cr&#101;ateFolder<br/>Dim i,ii,Cr&#101;ateFolderSub,PhCr&#101;ateFolderSub,BlInfo<br/>BlInfo = False<br/>Cr&#101;ateFolder = CFolder<br/>On Error Resume Next<br/>Set objFSO = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>If Err Then<br/>Err.Clear()<br/>Exit Function<br/>End If<br/>Cr&#101;ateFolder = Replace(Cr&#101;ateFolder,&#34;&#34;,&#34;/&#34;)<br/>If Left(Cr&#101;ateFolder,1)=&#34;/&#34; Then<br/>Cr&#101;ateFolder = Right(Cr&#101;ateFolder,Len(Cr&#101;ateFolder)-1)<br/>End If<br/>If Right(Cr&#101;ateFolder,1)=&#34;/&#34; Then<br/>Cr&#101;ateFolder = Left(Cr&#101;ateFolder,Len(Cr&#101;ateFolder)-1)<br/>End If<br/>Cr&#101;ateFolderArray = Split(Cr&#101;ateFolder,&#34;/&#34;)<br/>For i = 0 to UBound(Cr&#101;ateFolderArray)<br/>Cr&#101;ateFolderSub = &#34;&#34;<br/>For ii = 0 to i<br/>Cr&#101;ateFolderSub = Cr&#101;ateFolderSub &amp; Cr&#101;ateFolderArray(ii) &amp; &#34;/&#34;<br/>Next<br/>PhCr&#101;ateFolderSub = Server.MapPath(Cr&#101;ateFolderSub)<br/>If Not objFSO.FolderExists(PhCr&#101;ateFolderSub) Then<br/>objFSO.Cr&#101;ateFolder(PhCr&#101;ateFolderSub)<br/>End If<br/>Next<br/>If Err Then<br/>Err.Clear()<br/>Else<br/>BlInfo = True<br/>End If<br/>Cr&#101;ateMultiFolder = BlInfo<br/>End Function<br/>&#39;点击下载提示<br/>function downloadFile(strFile)<br/>&nbsp;&nbsp;&nbsp;&nbsp; strFilename = server.MapPath(strFile)<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.Buffer = True<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set s = Server.Cr&#101;ateObject(&#34;ADODB.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp; s.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp; s.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp; on error resume next<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set fso = Server.Cr&#101;ateObject(&#34;Scripting.FileSystemObject&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp; if not fso.FileExists(strFilename) then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(&#34;&lt;h1&gt;Error:&lt;/h1&gt;&#34; &amp; strFilename &amp; &#34; does not exist&lt;p&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.End<br/>&nbsp;&nbsp;&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set f = fso.GetFile(strFilename)<br/>&nbsp;&nbsp;&nbsp;&nbsp; intFilelength = f.size<br/>&nbsp;&nbsp;&nbsp;&nbsp; s.LoadFromFile(strFilename)<br/>&nbsp;&nbsp;&nbsp;&nbsp; if err then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Write(&#34;&lt;h1&gt;Error: &lt;/h1&gt;&#34; &amp; err.Description &amp; &#34;&lt;p&gt;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.End<br/>&nbsp;&nbsp;&nbsp;&nbsp; end if<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.AddHeader &#34;Content-Disposition&#34;, &#34;attachment; filename=&#34; &amp; f.name<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.AddHeader &#34;Content-Length&#34;, intFilelength<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.CharSet = &#34;UTF-8&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.ContentType = &#34;application/octet-stream&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.BinaryWrite s.Read<br/>&nbsp;&nbsp;&nbsp;&nbsp; Response.Flush<br/>&nbsp;&nbsp;&nbsp;&nbsp; s.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp; Set s = Nothing<br/>End Function<br/>&#39;-----------------------------------------------------------------------------<br/>If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set conn = Nothing<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.Write &#34;&lt;div style=&#39;font-size:12px;color:#333;height:20px;line-height:20px;border:1px solid #DDCF8F;padding:6px;background:#FFFFED;font-family:verdana&#39;&gt;网站异常出错，请与管理员联系，谢谢！&lt;/div&gt;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Response.End<br/>End If<br/>%&gt;<br/></div></div><br/><br/>实例生成Excel：<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>&#39;创建文件<br/>dim templateName,templatechar,filepath,filename,fileCharset,templateContent<br/>&nbsp;&nbsp; templateName=&#34;template/template_excel.htm&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板名字，支持带路径，如&#34;/moban/moban1.htm&#34;或&#34;temp/moban1.htm&#34;<br/>&nbsp;&nbsp; templatechar=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板文本的编码<br/>&nbsp;&nbsp; filepath=&#34;files/excel/&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;生成文件保存的路径，当前目录请留空，其他目录，路径必须以“/”结尾<br/>&nbsp;&nbsp; filename=&#34;Book1.xls&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;即将生成的文件名<br/>&nbsp;&nbsp; Cr&#101;ateMultiFolder(filepath)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;这一句用来判断文件夹是否存在，没有则自动创建，支持n级目录<br/>&nbsp;&nbsp; fileCharset=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;打算生成的文本编码<br/>&#39;读取指定的模板内容<br/>templateContent=ReadFromTextFile(templateName,templatechar)&nbsp;&nbsp; <br/>&#39;以下就交给你来替换模板内容了<br/>templateContent=replace(templateContent,&#34;{$websiteName}&#34;,&#34;<a href="http://www.blueidea.com/" target="_blank">蓝色理想</a>&#34;)<br/>templateContent=replace(templateContent,&#34;{$userName}&#34;,&#34;幸福的子弹&#34;)<br/>templateContent=replace(templateContent,&#34;{$now}&#34;,Now())<br/>&#39;其他内容......<br/>&#39;最终调用函数来生成文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Call WriteToTextFile(filepath&amp;filename,templateContent,fileCharset)&nbsp;&nbsp; <br/>&#39;最后关闭adodb.stream对象<br/>stm.flush<br/>stm.Close<br/>set stm=nothing<br/>downloadFile(filepath&amp;filename)<br/>%&gt;</div></div><br/><br/>生成Word文档:<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>&#39;创建文件<br/>dim templateName,templatechar,filepath,filename,fileCharset,templateContent<br/>&nbsp;&nbsp; templateName=&#34;template/template_word.htm&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板名字，支持带路径，如&#34;/moban/moban1.htm&#34;或&#34;temp/moban1.htm&#34;<br/>&nbsp;&nbsp; templatechar=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板文本的编码<br/>&nbsp;&nbsp; filepath=&#34;files/word/&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;生成文件保存的路径，当前目录请留空，其他目录，路径必须以“/”结尾<br/>&nbsp;&nbsp; filename=&#34;Doc1.doc&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;即将生成的文件名<br/>&nbsp;&nbsp; Cr&#101;ateMultiFolder(filepath)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;这一句用来判断文件夹是否存在，没有则自动创建，支持n级目录<br/>&nbsp;&nbsp; fileCharset=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;打算生成的文本编码<br/>&#39;读取指定的模板内容<br/>templateContent=ReadFromTextFile(templateName,templatechar)&nbsp;&nbsp; <br/>&#39;以下就交给你来替换模板内容了<br/>templateContent=replace(templateContent,&#34;{$websiteName}&#34;,&#34;<a href="http://www.blueidea.com/" target="_blank">蓝色理想</a>&#34;)<br/>templateContent=replace(templateContent,&#34;{$userName}&#34;,&#34;幸福的子弹&#34;)<br/>templateContent=replace(templateContent,&#34;{$now}&#34;,Now())<br/>&#39;其他内容......<br/>&#39;最终调用函数来生成文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Call WriteToTextFile(filepath&amp;filename,templateContent,fileCharset)&nbsp;&nbsp; <br/>&#39;最后关闭adodb.stream对象<br/>stm.flush<br/>stm.Close<br/>set stm=nothing<br/>downloadFile(filepath&amp;filename)<br/>%&gt;</div></div><br/><br/>生成.htm静态页面<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">&lt;%<br/>&#39;创建文件<br/>dim templateName,templatechar,filepath,filename,fileCharset,templateContent<br/>&nbsp;&nbsp; templateName=&#34;template/template_html.htm&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板名字，支持带路径，如&#34;/moban/moban1.htm&#34;或&#34;temp/moban1.htm&#34;<br/>&nbsp;&nbsp; templatechar=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;模板文本的编码<br/>&nbsp;&nbsp; filepath=&#34;files/html/&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;生成文件保存的路径，当前目录请留空，其他目录，路径必须以“/”结尾<br/>&nbsp;&nbsp; filename=&#34;Untitled-1.htm&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;即将生成的文件名<br/>&nbsp;&nbsp; Cr&#101;ateMultiFolder(filepath)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;这一句用来判断文件夹是否存在，没有则自动创建，支持n级目录<br/>&nbsp;&nbsp; fileCharset=&#34;gb2312&#34;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#39;打算生成的文本编码<br/>&#39;读取指定的模板内容<br/>templateContent=ReadFromTextFile(templateName,templatechar)&nbsp;&nbsp; <br/>&#39;以下就交给你来替换模板内容了<br/>templateContent=replace(templateContent,&#34;{$websiteName}&#34;,&#34;<a href="http://www.blueidea.com/" target="_blank">蓝色理想</a>&#34;)<br/>templateContent=replace(templateContent,&#34;{$userName}&#34;,&#34;幸福的子弹&#34;)<br/>templateContent=replace(templateContent,&#34;{$now}&#34;,now())<br/>&#39;其他内容......<br/>&#39;最终调用函数来生成文件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>Call WriteToTextFile(filepath&amp;filename,templateContent,fileCharset)&nbsp;&nbsp; <br/>&#39;最后关闭adodb.stream对象<br/>stm.flush<br/>stm.Close<br/>set stm=nothing<br/>response.Write(&#34;恭喜您，&#34;&amp;filename&amp;&#34;已经生成，&lt;a href=&#34;&#34;&#34;&amp;filepath&amp;filename&amp;&#34;&#34;&#34; target=&#34;&#34;_blank&#34;&#34;&gt;点击查看&lt;/a&gt;&#34;)<br/>%&gt;</div></div><img src="http://www.mysheji.com/blog/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.mysheji.com/blog/attachments/month_0806/l20086169438.rar" target="_blank">点击下载演示文档</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=796" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=796</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[简化CSS代码]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=6" label="CSS Tutorial" /> 
	  <updated>2008-06-06T08:32:30+08:00</updated>
	  <published>2008-06-06T08:32:30+08:00</published>
		  <summary type="html"><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在工作中编写CSS代码时，经常会出现冗余的代码，特别是用“可见即可得”工具来编写，为了提高代码的质量及文件压缩到最小，使代码具有可读性，我们不得不把CSS代码简化。<br/>下面用一些比较常用的属性来做示例：<br/>1、margin<br/><textarea name="code" class="css" rows="15" cols="100">margin-top:1px;
margin-right:1px;
margin-bottom:1px;
margin-left:1px;
代码简化为：margin:1px
margin-top:1px;
margin-right:2px;
margin-bottom:1px;
margin-left:2px;
代码简化为：margin:1px 2px</textarea><br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">margin-top:1px;<br/>margin-right:2px;<br/>margin-bottom:3px;<br/>margin-left:2px;<br/>代码简化为：margin:1px 2px 3px<br/>margin-top:1px;<br/>margin-right:2px;<br/>margin-bottom:3px;<br/>margin-left:4px;<br/>代码简化为：margin:1px 2px 3px 4px</div></div>当属性值是0的时候单位可以不写如：0px 直接就写成0 <br/>2、border<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">border-width:1px;<br/>border-style:solid;<br/>border-color:#000000;<br/>代码简化为：border:1px solid #000 </div></div><br/>3、background<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">background-color:#CCFFFF;<br/>background-image:url(图片路径);<br/>background-repeat:repeat-x;<br/>background-position:5px 4px;<br/>代码简化为：background:#CFF url(图片路径)&nbsp;&nbsp;repeat-x 5px 4px </div></div><br/>4、font<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">font-size:26px;<br/>font-weight:bold;<br/>font-family: “宋体”;<br/>代码简化为：font:26px bold “宋体” </div></div><br/>5、color属性值<br/><div class="UBBPanel"><div class="UBBTitle"><img src="http://www.mysheji.com/blog/images/code.gif" style="margin:0px 2px -3px 0px" alt="程序代码"/> 程序代码</div><div class="UBBContent">color:#000000;<br/>color:#ff0000;<br/>代码简化为：color:#000, color:#f00 </div></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=795" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=795</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[很不错的QQ体育形象]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=16" label="Collection" /> 
	  <updated>2008-06-04T21:21:53+08:00</updated>
	  <published>2008-06-04T21:21:53+08:00</published>
		  <summary type="html"><![CDATA[很卡通很形象！[<div align="center"><img src="http://www.mysheji.com/blog/attachments/month_0806/w200864211911.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/b200864211918.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/4200864211923.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/3200864211929.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/e200864211934.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/f200864211943.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/b200864211949.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/r200864211954.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/b20086421200.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/420086421206.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/7200864212012.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/5200864212017.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/6200864212024.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/s200864212028.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/8200864212034.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/p200864212039.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/k200864212043.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/i200864212049.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/3200864212053.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/z20086421210.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/f20086421216.jpg" border="0" alt=""/><br/><img src="http://www.mysheji.com/blog/attachments/month_0806/z200864212111.jpg" border="0" alt=""/></div>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=794" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=794</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[很久不写博客了]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=9" label="Diary&amp;Life" /> 
	  <updated>2008-05-17T23:27:13+08:00</updated>
	  <published>2008-05-17T23:27:13+08:00</published>
		  <summary type="html"><![CDATA[　　工作很忙很忙，生活的很累，却还在继续，很多时候，似乎连自己都忘记了有这么一个博客，曾经是那么的热衷于和激动地方，现在，好像已经没有那种感觉了，更多的时候，发现面对生活，只有几份苦笑和无奈。<br/>　　汶川地震了，震动了大半个中国，看着那些痛心和感人的画面，什么也不想说了。<br/>　　或许，活着就是一种幸福吧。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=793" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=793</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[传Goole词霸即将发布]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=4" label="News" /> 
	  <updated>2008-04-28T08:36:19+08:00</updated>
	  <published>2008-04-28T08:36:19+08:00</published>
		  <summary type="html"><![CDATA[<img hspace="5" src="http://mysheji.com/blog/attachments/month_0804/4200842883451.gif" align="right" vspace="5" alt="" />　　与谷歌合作后，11年来一直收费的金山词霸将变成全免费产品，并改名'谷歌词霸'。&quot;<br /><br />　　据称金山与谷歌之间的合作要到下月中才对外公开，所以当前双方均拒绝发表任何评论。谷歌不仅将金山词霸变成免费，它还打算&quot;将通过在线问答式'网络释义'和客户端两种形式直接向用户提供服务。&quot;也即谷歌有意将问答服务、搜索服务及翻译服务结合在一起，以软件的方式直接把桌面用户引导到谷歌上。<br /><br />　　消息还称金山与谷歌的合作有可能改变中国搜索引擎行业格局（即追上或超越百度），理由是金山词霸拥有3000万用户，这些用户将会成为谷歌的直接用户。这可能有点过份乐观了。因为Google网站上一直都提供翻译工具，Google Toolbar软件也有翻译功能，但它们一直以来都没在中国引起太大的关注，更不要说吸引多少万只用百度或同时用百度和Google的用户了。不管怎样，如果消息属实，那金山词霸真正免费也是个好消息，虽然一直以来很少人真的会购买它的正版。<br /><br />　　如果你还记得，在2007年及之前Google搜索曾经有翻译功能，可直接调用金山词霸在线词典的翻译结果，十分实用。令人遗憾的是谷歌将它砍掉了，一直没再加上。去掉对用户如此便利及实用的功能，再单独放出词霸软件出来，真的是更好的做法？<br /><br />　　其实如果你用过金山词霸的2008 beta版（个人版，终身免费），你就会发现里面早就整合了Google.cn搜索服务：<br />
<p align="center"><img alt="" src="http://mysheji.com/blog/attachments/month_0804/i200842883533.gif" /></p>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=791" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=791</id> 
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[把自行车又丢了]]></title>
	  <author>
		 <name>Hmily</name>
		 <uri>http://www.mysheji.com/blog/</uri>
		 <email>hmilygood@gmail.com</email>
	  </author>
	  <category term="" scheme="http://www.mysheji.com/blog/default.asp?cateID=9" label="Diary&amp;Life" /> 
	  <updated>2008-04-17T00:54:07+08:00</updated>
	  <published>2008-04-17T00:54:07+08:00</published>
		  <summary type="html"><![CDATA[　　不知道那根神经作怪，下班后忽然想去超市逛逛，约了朋友在超市门口相见，中间等了五六分钟，无意间听到旁边一位中年妇女正在向保安诉说自己电动车被偷事，没怎么在意。等朋友来了在超市转了半个小时出来自行车就没了，哎，好郁闷啊，骑了还不到两个礼拜，以后又得早早起床区打公交了。<br/>&nbsp;&nbsp;&nbsp;&nbsp;还记得上次丢自行车是在上大学的时候，那次丢了没好意思向家里人说，省吃俭用又重新买了辆。这次真的是没勇气再买辆新的了，这里严重鄙视那些小偷、人渣，包括偷手机...偷钱包、偷所有东西的坏蛋。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.mysheji.com/blog/default.asp?id=790" /> 
	  <id>http://www.mysheji.com/blog/default.asp?id=790</id> 
  </entry>	
		
</feed>