﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-微蓝领域-文章分类-common</title><link>http://www.blogjava.net/hilor/category/26589.html</link><description>我的学习档案馆</description><language>zh-cn</language><lastBuildDate>Sat, 29 Mar 2008 08:27:58 GMT</lastBuildDate><pubDate>Sat, 29 Mar 2008 08:27:58 GMT</pubDate><ttl>60</ttl><item><title>JAVA中获取系统路径</title><link>http://www.blogjava.net/hilor/articles/189347.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Fri, 28 Mar 2008 12:36:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/189347.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/189347.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/189347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/189347.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/189347.html</trackback:ping><description><![CDATA[<span id="ArticleContent1_ArticleContent1_lblContent"><span class="postbody"><font size="2">在Application中:
<br />
System.getProperty("user.dir")
<br />
<br />
在Servlet中:
<br />
ServletContext servletContext = config.getServletContext();
<br />
String rootPath = servletContext.getRealPath("/");
<br />
<br />
在jsp中:
<br />
application.getRealPath("") </font></span></span>
<img src ="http://www.blogjava.net/hilor/aggbug/189347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2008-03-28 20:36 <a href="http://www.blogjava.net/hilor/articles/189347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Java编码问题详解</title><link>http://www.blogjava.net/hilor/articles/180895.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Wed, 20 Feb 2008 08:32:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/180895.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/180895.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/180895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/180895.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/180895.html</trackback:ping><description><![CDATA[<p>引用：<a href="http://blog.csdn.net/Mr_IT/archive/2006/10/18/1339656.aspx">http://blog.csdn.net/Mr_IT/archive/2006/10/18/1339656.aspx</a></p>
<p>&gt;汉字编码的相关说明<br />
&nbsp; 汉字是双字节的，要占用两个BYTE的位置（即16位），分别称为高位和低位。<br />
中国规定的汉字编码为GB2312，这是强制性的，目前几乎所有的能处理中文的应用程序都支持GB2312。GB2312包括了一二级汉字和9区符号，高位从0xa1到0xfe，低位也是从0xa1到0xfe，其中，汉字的编码范围为0xb0a1到0xf7fe。<br />
另外有一种编码，叫做GBK，但这是一份规范，不是强制的。GBK提供了20902个汉字，它兼容GB2312，编码范围为0x8140到0xfefe。GBK中的所有字符都可以一一映射到Unicode 2.0。<br />
中国还颁布了另一种标准：GB18030-2000（GBK2K）。它收录了藏、蒙等少数民族的字型，从根本上解决了字位不足的问题。注意：它不再是定长的。其二字节部份与GBK兼容，四字节部分是扩充的字符、字形。它的首字节和第三字节从0x81到0xfe，二字节和第四字节从0x30到0x39。</p>
<p>2&gt;不同语言直接的转换<br />
&nbsp; 异种语言之间的转换是通过Unicode来完成的。假设有两种不同的语言A和B，转换的步骤为：先把A转化为Unicode，再把Unicode转化为B。<br />
&nbsp; 举例说明。有GB2312中有一个汉字&#8220;李&#8221;，其编码为&#8220;C0EE&#8221;，欲转化为ISO8859-1编码。步骤为：先把&#8220;李&#8221;字转化为Unicode，得到 &#8220;674E&#8221;，再把&#8220;674E&#8221;转化为ISO8859-1字符。当然，这个映射不会成功，因为ISO8859-1中根本就没有与&#8220;674E&#8221;对应的字符。当映射不成功时，问题就发生了！当从某语言向Unicode转化时，如果在某语言中没有该字符，得到的将是Unicode的代码&#8220;\uffffd&#8221;（&#8220;\ u&#8221;表示是Unicode编码，）。而从Unicode向某语言转化时，如果某语言没有对应的字符，则得到的是&#8220;0x3f&#8221;（&#8220;?&#8221;）。这就是&#8220;?&#8221;的由来。例如：把字符流buf =&#8220;0x80 0x40 0xb0 0xa1&#8221;进行new String(buf, "gb2312")操作，得到的结果是&#8220;\ufffd\u554a&#8221;，再println出来，得到的结果将是&#8220;?啊&#8221;，因为&#8220;0x80 0x40&#8221;是GBK中的字符，在GB2312中没有。再如，把字符串String="\u00d6\u00ec\u00e9\u0046\u00bb\ u00f9"进行new String (buf.getBytes("GBK"))操作，得到的结果是&#8220;3fa8aca8a6463fa8b4&#8221;，其中，&#8220;\u00d6&#8221;在&#8220;GBK&#8221;中没有对应的字符，得到&#8220;3f&#8221;，&#8220;\u00ec&#8221;对应着&#8220;a8ac&#8221;，&#8220;\u00e9&#8221;对应着&#8220;a8a6&#8221;，&#8220;0046&#8221;对应着&#8220;46&#8221;（因为这是ASCII字符），&#8220;\u00bb&#8221;没找到，得到&#8220;3f&#8221;，最后，&#8220;\u00f9&#8221;对应着&#8220;a8b4&#8221;。把这个字符串println一下，得到的结果是&#8220;?&#236;&#233;F? &#249;&#8221;。看到没？这里并不全是问号，因为GBK与Unicode映射的内容中除了汉字外还有字符，本例就是最好的明证。</p>
<p>3&gt;Unicode格式<br />
&nbsp; Unicode默认为UTF-16格式。<br />
&nbsp; UTF-8是Unicode压缩版本，对于大多数常用字符集(ASCII中0~127字符)它只使用单字节，而对其它常用字符(特别是朝鲜和汉语会意文字)，它使用３字节。如果写的主要是英语，那么UTF-8可减少文件大小一半左右。<br />
&nbsp; UTF-8就是以8位为单元对UCS进行编码，以字节为编码单元，没有字节序的问题。UTF-16以两个字节为编码单元，在解释一个UTF-16文本前，首先要弄清楚每个编码单元的字节序。例如"奎"的Unicode编码是594E，"乙"的Unicode编码是4E59。如果我们收到UTF-16字节流 "594E"，那么这是&#8220;奎&#8221;还是"乙"？Unicode规范中推荐的标记字节顺序的方法是BOM(即Byte Order Mark)。如果接收者收到FEFF，就表明这个字节流是Big-Endian的；如果收到FFFE，就表明这个字节流是Little-Endian的。</p>
<p>3&gt;UTF格式<br />
&nbsp; UTF，是Unicode Text Format的缩写，意为Unicode文本格式。对于UTF，是这样定义的：<br />
&nbsp; ● 如果Unicode的16位字符的头9位是0，则用一个字节表示，这个字节的首位是&#8220;0&#8221;，剩下的7位与原字符中的后7位相同，如&#8220;\u0034&#8221; （0000 0000 0011 0100），用&#8220;34&#8221; (0011 0100)表示；（与源Unicode字符是相同的）；<br />
&nbsp; &gt;7位的Unicode: 0 _ _ _ _ _ _ _<br />
&nbsp; ● 如果Unicode的16位字符的头5位是0，则用2个字节表示，首字节是&#8220;110&#8221;开头，后面的5位与源字符中除去头5个零后的最高5位相同；第二个字节以&#8220;10&#8221;开头，后面的6位与源字符中的低6位相同。如&#8220;\u025d&#8221;（0000 0010 0101 1101），转化后为&#8220;c99d&#8221;（1100 1001 1001 1101）；<br />
&nbsp; &gt;11位的Unicode: 1 1 0 _ _ _ _ _ 1 0 _ _ _ _ _ _<br />
&nbsp; ● 如果不符合上述两个规则，则用三个字节表示。第一个字节以&#8220;1110&#8221;开头，后四位为源字符的高四位；第二个字节以&#8220;10&#8221;开头，后六位为源字符中间的六位；第三个字节以&#8220;10&#8221;开头，后六位为源字符的低六位；如&#8220;\u9da7&#8221;（1001 1101 1010 0111），转化为&#8220;e9b6a7&#8221;（1110 1001 1011 0110 1010 0111）；<br />
&nbsp; &gt;16位的Unicode: 1 1 1 0 _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _<br />
&nbsp; &gt;21位的Unicode: 1 1 1 1 0 _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _ 1 0 _ _ _ _ _ _<br />
&nbsp; 可以这么描述JAVA程序中Unicode与UTF的关系，虽然不绝对：字符串在内存中运行时，表现为Unicode代码，而当要保存到文件或其它介质中去时，用的是UTF。这个转化过程是由writeUTF和readUTF来完成的。</p>
<p>4&gt;Java程序中的编码格式内幕<br />
&nbsp; input(charsetA)-＞process(Unicode)-＞output(charsetB)<br />
&nbsp; 即输入、处理和输出要经过&#8220;从charsetA到unicode再到charsetB&#8221;的转化。</p>
<p>&nbsp; SourceFile(jsp,java)-＞class-＞output<br />
&nbsp; 输入的是jsp和java源文件，在处理过程中，以Class文件为载体，然后输出。</p>
<p>　● JSP从源文件到Class的过程。<br />
&nbsp; 在本节中，将阐述JSP文件的解释和编译过程，并跟踪其中的中文变化。<br />
　　1、JSP/Servlet引擎提供的JSP转换工具（jspc）搜索JSP文件中用＜%@ page contentType ="text/html; charset=＜Jsp-charset＞"%＞中指定的charset。如果在JSP文件中未指定＜Jsp-charset＞，则取JVM中的默认设置file.encoding，一般情况下，这个值是ISO8859-1；<br />
　　2、jspc用相当于&#8220;javac &#8211;encoding ＜Jsp-charset＞&#8221;的命令解释JSP文件中出现的所有字符，包括中文字符和ASCII字符，然后把这些字符转换成Unicode字符，再转化成 UTF格式，存为JAVA文件。ASCII码字符转化为Unicode字符时只是简单地在前面加&#8220;00&#8221;，如&#8220;A&#8221;，转化为&#8220;\u0041&#8221;（不需要理由，Unicode的码表就是这么编的）。然后，经过到UTF的转换，又变回&#8220;41&#8221;了！这也就是可以使用普通文本编辑器查看由JSP生成的JAVA文件的原因；<br />
　　3、引擎用相当于&#8220;javac &#8211;encoding UNICODE&#8221;的命令，把JAVA文件编译成CLASS文件；<br />
　　先看一下这些过程中中文字符的转换情况。有如下源代码：<br />
＜%@ page contentType="text/html; charset=gb2312"%＞<br />
＜html＞＜body＞<br />
＜%<br />
　String a="中文";<br />
　out.println(a);<br />
%＞<br />
＜/body＞＜/html＞ <br />
&nbsp; 两个字的GB2312编码为&#8220;D6 D0 CE C4&#8221;。经查表，&#8220;中文&#8221;两字的Unicode编码为&#8220;\u4E2D\u6587&#8221;，用 UTF表示就是&#8220;E4 B8 AD E6 96 87&#8221;。此JSP文件生成的JAVA文件中的&#8220;中文&#8221;两个字被&#8220;E4 B8 AD E6 96 87&#8221;替代了，再查看由JAVA文件编译生成的CLASS文件，发现结果与JAVA文件中的完全一样。<br />
&nbsp; <br />
&nbsp; 再看JSP中指定的CharSet为ISO-8859-1的情况。<br />
＜%@ page contentType="text/html; charset=ISO-8859-1"%＞<br />
＜html＞＜body＞<br />
＜%<br />
　String a="中文";<br />
　out.println(a);<br />
%＞<br />
＜/body＞＜/html＞ <br />
&nbsp; 先推测一下生成的JAVA文件和CLASS文件的过程：jspc用ISO-8859-1来解释&#8220;中文&#8221;，并把它映射到Unicode。由于ISO- 8859-1是8位的，其映射规则就是在每个字节前加&#8220;00&#8221;，所以，映射后的Unicode编码应为&#8220;\u00D6\u00D0\u00CE\ u00C4&#8221;，转化成UTF后应该是&#8220;C3 96 C3 90 C3 8E C3 84&#8221;。最后，打开文件看一下，JAVA文件和CLASS文件中，&#8220;中文&#8221;果然都表示为&#8220;C3 96 C3 90 C3 8E C3 84&#8221;。<br />
&nbsp; 如果上述代码中不指定＜Jsp-charset＞，即把第一行写成&#8220;＜%@ page contentType="text/html" %＞&#8221;，JSPC会使用file.encoding的设置来解释JSP文件。在RedHat 6.2上，其处理结果与指定为ISO-8859-1是完全相同的。<br />
&nbsp; <br />
&nbsp; 到现在为止，已经解释了从JSP文件到CLASS文件的转变过程中中文字符的映射过程。一句话：从&#8220;JspCharSet到Unicode再到UTF&#8221;。</p>
<p>&nbsp; ● Servlet从源文件到Class的过程<br />
&nbsp; 本节将讨论Servlet的编译过程并跟踪其中的中文变化。<br />
&nbsp; 用&#8220;javac&#8221;编译Servlet源文件。javac可以带&#8220;-encoding ＜Compile-charset＞&#8221;参数，意思是&#8220;用＜ Compile-charset ＞中指定的编码来解释Serlvet源文件&#8221;。<br />
&nbsp; 源文件在编译时，用＜Compile-charset＞来解释所有字符，包括中文字符和ASCII字符。然后把字符常量转变成Unicode字符，最后，把Unicode转变成UTF。<br />
&nbsp; 在Servlet中，还有一个地方设置输出流的CharSet。通常在输出结果前，调用HttpServletResponse的 setContentType方法来达到与在JSP中设置＜Jsp-charset＞一样的效果，称之为＜Servlet-charset＞。<br />
&nbsp; 注意，文中一共提到了三个变量：＜Jsp-charset＞、＜Compile-charset＞和＜Servlet-charset＞。其中，JSP文件只与＜Jsp-charset＞有关，而＜Compile-charset＞和＜Servlet-charset＞只与Servlet有关。</p>
<p>import javax.servlet.*;<br />
import javax.servlet.http.*;<br />
class testServlet extends HttpServlet<br />
{<br />
　public void doGet(HttpServletRequest req,HttpServletResponse res)<br />
　throws ServletException,java.io.IOException<br />
　{<br />
　　res.setContentType("text/html; charset=GB2312");<br />
　　java.io.PrintWriter out=res.getWriter();<br />
　　out.println("＜html＞");<br />
　　out.println("#中文#");<br />
　　out.println("＜/html＞");<br />
　}<br />
} </p>
<p>&nbsp; 开始编译。下表是＜Compile-charset＞不同时，CLASS文件中&#8220;中文&#8221;两字的十六进制码。在编译过程中，＜Servlet- charset＞不起任何作用。＜Servlet-charset＞只对CLASS文件的输出产生影响，实际上是＜Servlet-charset＞和＜Compile-charset＞一起，达到与JSP文件中的＜Jsp-charset＞相同的效果，因为＜Jsp-charset＞对编译和 CLASS文件的输出都会产生影响。&#8220;中文&#8221;两个字的GB2312编码为&#8220;D6 D0 CE C4&#8221;</p>
<p>Compile-charset&nbsp;&nbsp; Class文件中&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 等效的Unicode码 <br />
GB2312&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E4 B8 AD E6 96 87(UTF)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \u4E2D\u6587 (在Unicode中＝&#8220;中文&#8221;) <br />
ISO-8859-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; C3 96 C3 90 C3 8E C3 84 (UTF)&nbsp;&nbsp; \u00D6 \u00D0 \u00CE \u00C4 (在D6 D0 CE C4前面各加了一个00) <br />
（默认）&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同ISO-8859-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同ISO-8859-1 </p>
<p>&nbsp; 普通Java程序的编译过程与Servlet完全一样。<br />
&nbsp; 接下来看看CLASS又是怎样输出中文的呢？<br />
&nbsp; 上文说过，字符串在内存中表现为Unicode编码。至于这种Unicode编码表示了什么，那要看它是从哪种字符集映射过来的，也就是说要看它的祖先。看看上面的例子，如果给一串Unicode编码&#8220;00D6 00D0 00CE 00C4&#8221;，如果不作转换，直接用Unicode码表来对照它时，是四个字符（而且是特殊字符）；假如把它与&#8220;ISO8859-1&#8221;进行映射，则直接去掉前面的&#8220;00&#8221;即可得到&#8220;D6 D0 CE C4&#8221;，这是ASCII码表中的四个字符；而假如把它当作GB2312来进行映射，得到的结果很可能是一大堆乱码，因为在GB2312中有可能没有（也有可能有）字符与00D6等字符对应（如果对应不上，将得到0x3f，也就是问号，如果对应上了，由于00D6等字符太靠前，估计也是一些特殊符号，真正的汉字在Unicode中的编码从4E00开始）。<br />
&nbsp; 可以，同样的Unicode字符，可以解释成不同的样子。当然，这其中有一种是我们期望的结果。<br />
&nbsp; 以上例而论，&#8220;D6 D0 CE C4&#8221;应该是我们所想要的，当把&#8220;D6 D0 CE C4&#8221;输出到IE中时，用&#8220;简体中文&#8221;方式查看，就能看到清楚的&#8220;中文&#8221;两个字了。<br />
&nbsp; Servlet中，当Compile-charset=Servlet-charset时，显示结果肯定正常。</p>
<p>&nbsp; ● 最终结论：<br />
&nbsp; 在Class输出字符串前，会将Unicode的字符串按照某一种内码重新生成字节流，然后把字节流输入，相当于进行了一步&#8220;String.getBytes(???)&#8221;操作。???代表某一种字符集。<br />
&nbsp; 如果是Servlet，那么，这种内码就是在HttpServletResponse.setContentType()方法中指定的内码，也就是上文定义的＜Servlet-charset＞。<br />
&nbsp; 如果是JSP，那么，这种内码就是在＜%@ page contentType=""%＞中指定的内码，也就是上文定义的＜Jsp-charset＞。<br />
&nbsp; 如果是Java程序，那么，这种内码就是file.encoding中指定的内码，默认为ISO8859-1。</p>
<p>5&gt;结论<br />
&nbsp; 在Jsp文件中，要指定contentType，其中，charset的值要与客户端浏览器所用的字符集一样；对于其中的字符串常量，不需做任何内码转换；对于字符串变量，要求能根据ContentType中指定的字符集还原成客户端能识别的字节流，简单地说，就是&#8220;字符串变量是基于＜Jsp- charset＞字符集的&#8221;；<br />
&nbsp; 在Servlet中，必须用HttpServletResponse.setContentType()设置charset，且设置成与客户端内码一致；对于其中的字符串常量，需要在Javac编译时指定encoding，这个encoding必须与编写源文件的平台的字符集一样，一般说来都是 GB2312或GBK；对于字符串变量，与JSP一样，必须&#8220;是基于＜Servlet-charset＞字符集的&#8221;。&nbsp;</p>
<br />
<br />
<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1339656</p>
<img src ="http://www.blogjava.net/hilor/aggbug/180895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2008-02-20 16:32 <a href="http://www.blogjava.net/hilor/articles/180895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA字符编码系列一：Unicode,GBK,GB2312,UTF-8概念基础(转)</title><link>http://www.blogjava.net/hilor/articles/180893.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Wed, 20 Feb 2008 08:29:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/180893.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/180893.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/180893.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/180893.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/180893.html</trackback:ping><description><![CDATA[<div>这两天抽时间又总结/整理了一下各种编码的实际编码方式，和在Java应用中的使用情况，在这里记录下来以便日后参考。</div>
<div>为了构成一个完整的对文字编码的认识和深入把握，以便处理在Java开发过程中遇到的各种问题，特别是乱码问题，我觉得组成一个系列来描述和分析更好一些，包括三篇文章：</div>
<div>第一篇：JAVA字符编码系列一：<a href="http://blog.csdn.net/qinysong/archive/2006/09/05/1179480.aspx">Unicode,GBK,GB2312,UTF-8概念基础</a></div>
<div>第二篇：JAVA字符编码系列二：<a href="http://blog.csdn.net/qinysong/archive/2006/09/05/1179489.aspx">Unicode,ISO-8859,GBK,UTF-8编码及相互转换</a></div>
<div>第三篇：JAVA字符编码系列三：<a href="http://blog.csdn.net/qinysong/archive/2006/09/05/1179513.aspx">Java应用中的编码问题</a></div>
<div>&nbsp;</div>
<div>第一篇：JAVA字符编码系列一：Unicode,GBK,GB2312,UTF-8概念基础</div>
<div>本部分采用重用，转载一篇文章来完成这部分的目标。</div>
<div>来源：holen'blog&nbsp;&nbsp; 对字符编码与Unicode,ISO 10646,UCS,UTF8,UTF16,GBK,GB2312的理解</div>
<div>地址：http://blog.donews.com/holen/archive/2004/11/30/188182.aspx</div>
<div>&nbsp;</div>
<div></div>
<div><strong>Unicode:</strong> <br />
<br />
unicode.org制定的编码机制, 要将全世界常用文字都函括进去.<br />
在1.0中是16位编码, 由U+0000到U+FFFF. 每个2byte码对应一个字符; 在2.0开始抛弃了16位限制, 原来的16位作为基本位平面, 另外增加了16个位平面, 相当于20位编码, 编码范围0到0x10FFFF.<br />
<br />
<strong>UCS: </strong><br />
<br />
ISO制定的ISO10646标准所定义的 Universal Character Set, 采用4byte编码.<br />
<br />
<strong>Unicode与UCS的关系:</strong><br />
<br />
ISO 与unicode.org是两个不同的组织, 因此最初制定了不同的标准; 但自从unicode2.0开始, unicode采用了与ISO 10646-1相同的字库和字码, ISO也承诺ISO10646将不会给超出0x10FFFF的UCS-4编码赋值, 使得两者保持一致.<br />
<br />
<strong>UCS的编码方式:</strong><br />
<br />
</div>
<li>UCS-2, 与unicode的2byte编码基本一样. <br />
</li>
<li>UCS-4, 4byte编码, 目前是在UCS-2前加上2个全零的byte.<br />
<br />
<strong>UTF: </strong>Unicode/UCS Transformation Format<br />
</li>
<li>UTF-8, 8bit编码, ASCII不作变换, 其他字符做变长编码, 每个字符1-3 byte. 通常作为外码. 有以下优点:<br />
* 与CPU字节顺序无关, 可以在不同平台之间交流<br />
* 容错能力高, 任何一个字节损坏后, 最多只会导致一个编码码位损失, 不会链锁错误(如GB码错一个字节就会整行乱码) <br />
</li>
<li>UTF-16, 16bit编码, 是变长码, 大致相当于20位编码, 值在0到0x10FFFF之间, 基本上就是unicode编码的实现. 它是变长码, 与CPU字序有关, 但因为最省空间, 常作为网络传输的外码.<br />
UTF-16是unicode的preferred encoding. <br />
</li>
<li>UTF-32, 仅使用了unicode范围(0到0x10FFFF)的32位编码, 相当于UCS-4的子集.<br />
<br />
<strong>UTF与unicode的关系:</strong><br />
<br />
Unicode是一个字符集, 可以看作为内码.<br />
而UTF 是一种编码方式, 它的出现是因为unicode不适宜在某些场合直接传输和处理. UTF-16直接就是unicode编码, 没有变换, 但它包含了0x00在编码内, 头256字节码的第一个byte都是0x00, 在操作系统(C语言)中有特殊意义, 会引起问题. 采用UTF-8编码对unicode的直接编码作些变换可以避免这问题, 并带来一些优点.<br />
<br />
<strong>中国国标编码:</strong><br />
</li>
<li>GB 13000: 完全等同于ISO 10646-1/Unicode 2.1, 今后也将随ISO 10646/Unicode的标准更改而同步更改.<br />
</li>
<li>GBK: 对GB2312的扩充, 以容纳GB2312字符集范围以外的Unicode 2.1的统一汉字部分, 并且增加了部分unicode中没有的字符. <br />
</li>
<li>GB 18030-2000: 基于GB 13000, 作为Unicode 3.0的GBK扩展版本, 覆盖了所有unicode编码, 地位等同于UTF-8, UTF-16, 是一种unicode编码形式. 变长编码, 用单字节/双字节/4字节对字符编码. GB18030向下兼容GB2312/GBK. <br />
GB 18030是中国所有非手持/嵌入式计算机系统的强制实施标准.
<p><br />
-------------------------------<br />
</p>
<p><br />
&nbsp;</p>
<h2>什么是 UCS 和 ISO 10646?</h2>
<p>国际标准 <strong>ISO 10646</strong> 定义了 <strong>通用字符集 (Universal Character Set, UCS)</strong>. UCS 是所有其他字符集标准的一个超集. 它保证与其他字符集是双向兼容的. 就是说, 如果你将任何文本字符串翻译到 UCS格式, 然后再翻译回原编码, 你不会丢失任何信息.</p>
<p>UCS 包含了用于表达所有已知语言的字符. 不仅包括拉丁语,希腊语, 斯拉夫语,希伯来语,阿拉伯语,亚美尼亚语和乔治亚语的描述, 还包括中文, 日文和韩文这样的象形文字, 以及 平假名, 片假名, 孟加拉语, 旁遮普语果鲁穆奇字符(Gurmukhi), 泰米尔语, 印.埃纳德语(Kannada), Malayalam, 泰国语, 老挝语, 汉语拼音(Bopomofo), Hangul, Devangari, Gujarati, Oriya, Telugu 以及其他数也数不清的语. 对于还没有加入的语言, 由于正在研究怎样在计算机中最好地编码它们, 因而最终它们都将被加入. 这些语言包括 Tibetian, 高棉语, Runic(古代北欧文字), 埃塞俄比亚语, 其他象形文字, 以及各种各样的印-欧语系的语言, 还包括挑选出来的艺术语言比如 Tengwar, Cirth 和克林贡语(Klingon). UCS 还包括大量的图形的, 印刷用的, 数学用的和科学用的符号, 包括所有由 TeX, Postscript, MS-DOS，MS-Windows, Macintosh, OCR 字体, 以及许多其他字处理和出版系统提供的字符.</p>
<p>ISO 10646 定义了一个 31 位的字符集. 然而, 在这巨大的编码空间中, 迄今为止只分配了前 65534 个码位 (0x0000 到 0xFFFD). 这个 UCS 的 16位子集称为 <strong>基本多语言面 (Basic Multilingual Plane, BMP)</strong>. 将被编码在 16 位 BMP 以外的字符都属于非常特殊的字符(比如象形文字), 且只有专家在历史和科学领域里才会用到它们. 按当前的计划, 将来也许再也不会有字符被分配到从 0x000000 到 0x10FFFF 这个覆盖了超过 100 万个潜在的未来字符的 21 位的编码空间以外去了. ISO 10646-1 标准第一次发表于 1993 年, 定义了字符集与 BMP 中内容的架构. 定义 BMP 以外的字符编码的第二部分 ISO 10646-2 正在准备中, 但也许要过好几年才能完成. 新的字符仍源源不断地加入到 BMP 中, 但已经存在的字符是稳定的且不会再改变了.</p>
<p>UCS 不仅给每个字符分配一个代码, 而且赋予了一个正式的名字. 表示一个 UCS 或 Unicode 值的十六进制数, 通常在前面加上 "U+", 就象 U+0041 代表字符"拉丁大写字母A". UCS 字符 U+0000 到 U+007F 与 US-ASCII(ISO 646) 是一致的, U+0000 到 U+00FF 与 ISO 8859-1(Latin-1) 也是一致的. 从 U+E000 到 U+F8FF, 已经 BMP 以外的大范围的编码是为私用保留的.</p>
<h2>什么是组合字符?</h2>
<p>UCS里有些编码点分配给了 <strong>组合字符</strong>. 它们类似于打字机上的无间隔重音键. 单个的组合字符不是一个完整的字符. 它是一个类似于重音符或其他指示标记, 加在前一个字符后面. 因而, 重音符可以加在任何字符后面. 那些最重要的被加重的字符, 就象普通语言的正字法(orthographies of common languages)里用到的那种, 在 UCS 里都有自己的位置, 以确保同老的字符集的向后兼容性. 既有自己的编码位置, 又可以表示为一个普通字符跟随一个组合字符的被加重字符, 被称为 <strong>预作字符(precomposed characters)</strong>. UCS 里的预作字符是为了同没有预作字符的旧编码, 比如 ISO 8859, 保持向后兼容性而设的. 组合字符机制允许在任何字符后加上重音符或其他指示标记, 这在科学符号中特别有用, 比如数学方程式和国际音标字母, 可能会需要在一个基本字符后组合上一个或多个指示标记.</p>
<p>组合字符跟随着被修饰的字符. 比如, 德语中的元音变音字符 ("拉丁大写字母A 加上分音符"), 既可以表示为 UCS 码 U+00C4 的预作字符, 也可以表示成一个普通 "拉丁大写字母A" 跟着一个"组合分音符":U+0041 U+0308 这样的组合. 当需要堆叠多个重音符, 或在一个基本字符的上面和下面都要加上组合标记时, 可以使用多个组合字符. 比如在泰国文中, 一个基本字符最多可加上两个组合字符.</p>
<h2>什么是 UCS 实现级别?</h2>
<p>不是所有的系统都需要支持象组合字符这样的 UCS 里所有的先进机制. 因此 ISO 10646 指定了下列三种实现级别: </p>
<dl>
<dt>级别1 </dt>
<dd>不支持组合字符和 Hangul Jamo 字符 (一种特别的, 更加复杂的韩国文的编码, 使用两个或三个子字符来编码一个韩文音节) </dd>
<dt>级别2 </dt>
<dd>类似于级别1, 但在某些文字中, 允许一列固定的组合字符 (例如, 希伯来文, 阿拉伯文, Devangari, 孟加拉语, 果鲁穆奇语, Gujarati, Oriya, 泰米尔语, Telugo, 印.埃纳德语, Malayalam, 泰国语和老挝语). 如果没有这最起码的几个组合字符, UCS 就不能完整地表达这些语言. </dd>
<dt>级别3 </dt>
<dd>支持所有的 UCS 字符, 例如数学家可以在任意一个字符上加上一个 tilde(颚化符号,西班牙语字母上面的～)或一个箭头(或两者都加). </dd></dl>
<h2>什么是 Unicode?</h2>
<p>历史上, 有两个独立的, 创立单一字符集的尝试. 一个是<a href="http://www.iso.ch/">国际标准化组织(ISO)</a>的 ISO 10646 项目, 另一个是由(一开始大多是美国的)多语言软件制造商组成的协会组织的 <a href="http://www.unicode.org/">Unicode 项目</a>. 幸运的是, 1991年前后, 两个项目的参与者都认识到, 世界不需要两个不同的单一字符集. 它们合并双方的工作成果, 并为创立一个单一编码表而协同工作. 两个项目仍都存在并独立地公布各自的标准, 但 Unicode 协会和 ISO/IEC JTC1/SC2 都同意保持 Unicode 和 ISO 10646 标准的码表兼容, 并紧密地共同调整任何未来的扩展.</p>
<h2>那么 Unicode 和 ISO 10646 不同在什么地方?</h2>
<p>Unicode 协会公布的 <a href="http://www.unicode.org/unicode/standard/standard.html">Unicode 标准</a> 严密地包含了 ISO 10646-1 实现级别3的基本多语言面. 在两个标准里所有的字符都在相同的位置并且有相同的名字.</p>
<p>Unicode 标准额外定义了许多与字符有关的语义符号学, 一般而言是对于实现高质量的印刷出版系统的更好的参考. Unicode 详细说明了绘制某些语言(比如阿拉伯语)表达形式的算法, 处理双向文字(比如拉丁与希伯来文混合文字)的算法和 排序与字符串比较 所需的算法, 以及其他许多东西.</p>
<p>另一方面, ISO 10646 标准, 就象广为人知的 ISO 8859 标准一样, 只不过是一个简单的字符集表. 它指定了一些与标准有关的术语, 定义了一些编码的别名, 并包括了规范说明, 指定了怎样使用 UCS 连接其他 ISO 标准的实现, 比如 ISO 6429 和 ISO 2022. 还有一些与 ISO 紧密相关的, 比如 ISO 14651 是关于 UCS 字符串排序的.</p>
<p>考虑到 Unicode 标准有一个易记的名字, 且在任何好的书店里的 Addison-Wesley 里有, 只花费 ISO 版本的一小部分, 且包括更多的辅助信息, 因而它成为使用广泛得多的参考也就不足为奇了. 然而, 一般认为, 用于打印 ISO 10646-1 标准的字体在某些方面的质量要高于用于打印 Unicode 2.0的. 专业字体设计者总是被建议说要两个标准都实现, 但一些提供的样例字形有显著的区别. ISO 10646-1 标准同样使用四种不同的风格变体来显示表意文字如中文, 日文和韩文 (CJK), 而 Unicode 2.0 的表里只有中文的变体. 这导致了普遍的认为 Unicode 对日本用户来说是不可接收的传说, 尽管是错误的.</p>
<h2>什么是 UTF-8?</h2>
<p>首先 UCS 和 Unicode 只是分配整数给字符的编码表. 现在存在好几种将一串字符表示为一串字节的方法. 最显而易见的两种方法是将 Unicode 文本存储为 2 个 或 4 个字节序列的串. 这两种方法的正式名称分别为 UCS-2 和 UCS-4. 除非另外指定, 否则大多数的字节都是这样的(Bigendian convention). 将一个 ASCII 或 Latin-1 的文件转换成 UCS-2 只需简单地在每个 ASCII 字节前插入 0x00. 如果要转换成 UCS-4, 则必须在每个 ASCII 字节前插入三个 0x00.</p>
<p>在 Unix 下使用 UCS-2 (或 UCS-4) 会导致非常严重的问题. 用这些编码的字符串会包含一些特殊的字符, 比如 '\0' 或 '/', 它们在 文件名和其他 C 库函数参数里都有特别的含义. 另外, 大多数使用 ASCII 文件的 UNIX 下的工具, 如果不进行重大修改是无法读取 16 位的字符的. 基于这些原因, 在文件名, 文本文件, 环境变量等地方, <strong>UCS-2</strong> 不适合作为 <strong>Unicode</strong> 的外部编码.</p>
<p>在 ISO 10646-1 <a href="http://www.cl.cam.ac.uk/~mgk25/ucs/ISO-10646-UTF-8.html">Annex R</a> 和 <a href="ftp://ftp.funet.fi/mirrors/nic.nordu.net/rfc/rfc2279.txt">RFC 2279</a> 里定义的 <strong>UTF-8</strong> 编码没有这些问题. 它是在 Unix 风格的操作系统下使用 Unicode 的明显的方法.</p>
<p>UTF-8 有一下特性: </p>
<ul>
    <li>UCS 字符 U+0000 到 U+007F (ASCII) 被编码为字节 0x00 到 0x7F (ASCII 兼容). 这意味着只包含 7 位 ASCII 字符的文件在 ASCII 和 UTF-8 两种编码方式下是一样的. </li>
    <li>所有 &gt;U+007F 的 UCS 字符被编码为一个多个字节的串, 每个字节都有标记位集. 因此, ASCII 字节 (0x00-0x7F) 不可能作为任何其他字符的一部分. </li>
    <li>表示非 ASCII 字符的多字节串的第一个字节总是在 0xC0 到 0xFD 的范围里, 并指出这个字符包含多少个字节. 多字节串的其余字节都在 0x80 到 0xBF 范围里. 这使得重新同步非常容易, 并使编码无国界, 且很少受丢失字节的影响. </li>
    <li>可以编入所有可能的 2<sup>31</sup>个 UCS 代码 </li>
    <li>UTF-8 编码字符理论上可以最多到 6 个字节长, 然而 16 位 BMP 字符最多只用到 3 字节长. </li>
    <li>Bigendian UCS-4 字节串的排列顺序是预定的. </li>
    <li>字节 0xFE 和 0xFF 在 UTF-8 编码中从未用到. </li>
</ul>
<p>下列字节串用来表示一个字符. 用到哪个串取决于该字符在 Unicode 中的序号.</p>
<div align="center">
<center>
<table border="1">
    <tbody>
        <tr>
            <td>U-00000000 - U-0000007F: </td>
            <td>0<em>xxxxxxx</em> </td>
        </tr>
        <tr>
            <td>U-00000080 - U-000007FF: </td>
            <td>110<em>xxxxx</em> 10<em>xxxxxx</em> </td>
        </tr>
        <tr>
            <td>U-00000800 - U-0000FFFF: </td>
            <td>1110<em>xxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> </td>
        </tr>
        <tr>
            <td>U-00010000 - U-001FFFFF: </td>
            <td>11110<em>xxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> </td>
        </tr>
        <tr>
            <td>U-00200000 - U-03FFFFFF: </td>
            <td>111110<em>xx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> </td>
        </tr>
        <tr>
            <td>U-04000000 - U-7FFFFFFF: </td>
            <td>1111110<em>x</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> 10<em>xxxxxx</em> </td>
        </tr>
    </tbody>
</table>
</center></div>
<p>xxx 的位置由字符编码数的二进制表示的位填入. 越靠右的 x 具有越少的特殊意义. 只用最短的那个足够表达一个字符编码数的多字节串. 注意在多字节串中, 第一个字节的开头"1"的数目就是整个串中字节的数目.</p>
<p><strong>例如</strong>: Unicode 字符 U+00A9 = 1010 1001 (版权符号) 在 UTF-8 里的编码为:</p>
<blockquote>
<p>11000010 10101001 = 0xC2 0xA9</p>
</blockquote>
<p>而字符 U+2260 = 0010 0010 0110 0000 (不等于) 编码为:</p>
<blockquote>
<p>11100010 10001001 10100000 = 0xE2 0x89 0xA0</p>
</blockquote>
<p>这种编码的官方名字拼写为 UTF-8, 其中 UTF 代表 <strong>U</strong>CS <strong>T</strong>ransformation <strong>F</strong>ormat. 请勿在任何文档中用其他名字 (比如 utf8 或 UTF_8) 来表示 UTF-8, 当然除非你指的是一个变量名而不是这种编码本身.</p>
<h2>什么编程语言支持 Unicode?</h2>
<p>在大约 1993 年之后开发的大多数现代编程语言都有一个特别的数据类型, 叫做 Unicode/ISO 10646-1 字符. 在 Ada95 中叫 Wide_Character, 在 Java 中叫 char.</p>
<p>ISO C 也详细说明了处理多字节编码和宽字符 (wide characters) 的机制, 1994 年 9 月 <a href="http://www.lysator.liu.se/c/na1.html">Amendment 1 to ISO C</a> 发表时又加入了更多. 这些机制主要是为各类东亚编码而设计的, 它们比处理 UCS 所需的要健壮得多. UTF-8 是 ISO C 标准调用多字节字符串的编码的一个例子, <em>wchar_t</em> 类型可以用来存放 Unicode 字符.</p>
</li>
<img src ="http://www.blogjava.net/hilor/aggbug/180893.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2008-02-20 16:29 <a href="http://www.blogjava.net/hilor/articles/180893.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下安装Tomcat5.5，并进行优化  </title><link>http://www.blogjava.net/hilor/articles/180637.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Tue, 19 Feb 2008 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/180637.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/180637.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/180637.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/180637.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/180637.html</trackback:ping><description><![CDATA[<table class="post">
    <!-- 正常显示帖子-->
    <tbody>
        <tr>
            <td class="title" style="font-size: 14px">Linux下安装Tomcat5.5，并进行优化 </td>
        </tr>
        <tr>
            <td>
            <div class="message" style="font-size: 14px">1. 安装JDK1.5&nbsp;&nbsp;(Tomcat5.5必须要JDK1.5以上版本) <br />
            1)下载RPM包或bin包 <br />
            2)安装步骤 <br />
            &nbsp;&nbsp;a. 如果是bin包，需要 chmod 777&nbsp;&nbsp;jdk-1_5_0_12-linux-i586-rpm.bin <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后执行&nbsp;&nbsp;./jdk-1_5_0_12-linux-i586-rpm.bin <br />
            &nbsp;&nbsp;b. 软件自动安装到 /usr/java/jdk1.5.0_12 <br />
            &nbsp;&nbsp;c. vi ~/.bash_profile <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在PATH后面添加:/usr/java/jdk1.5.0_12/bin <br />
            <br />
            2.安装Tomcat5.5 <br />
            1)下载源码包&nbsp;&nbsp;apache-tomcat-5.5.23.tar.gz <br />
            &nbsp;&nbsp;&nbsp;下载地址：http://tomcat.apache.org <br />
            2)安装步骤 <br />
            &nbsp;&nbsp;&nbsp;a. tar zxvf apache-tomcat-5.5.23.tar.gz /usr/local/tomcat1 <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tar zxvf apache-tomcat-5.5.23.tar.gz /usr/local/tomcat2 <br />
            &nbsp;&nbsp;&nbsp;b. 修改&nbsp;&nbsp;bin/catalina.sh <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JAVA_HOME=/usr/java/jdk1.5.0_12 <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;JAVA_OPTS=' -Xms256m -Xmx512m -XX:PermSize=512M -XX:MaxPermSize=512m '&nbsp;&nbsp; <br />
            3)起停 <br />
            &nbsp;&nbsp;/usr/local/tomcat1/bin/startup.sh|shutdown.sh <br />
            <br />
            3.安装Tomcat-Native连接APR，提高静态资源的访问性能 <br />
            1)下载软件包&nbsp;&nbsp;tomcat-native-1.1.10-src.tar.gz <br />
            &nbsp;&nbsp;&nbsp;下载地址：http://archive.apache.org/dist/tomcat/tomcat-connectors/native/ <br />
            2)apr和apr-util的安装参考<span class="ubb_link"><a class="ubb_link" href="http://forum.ospod.com/post-3006-1.fhtml" target="_blank" rel="nofollow">Linux下Apache和Apr整合，提高Apache性能</a></span> <br />
            2)安装步骤 <br />
            &nbsp;&nbsp;&nbsp;a. tar zxvf tomcat-native-1.1.10-src.tar.gz <br />
            &nbsp;&nbsp;&nbsp;b. cd /tomcat-native-1.1.10-src/jni/native <br />
            &nbsp;&nbsp;&nbsp;c. ./configure --prefix=/usr/local/apache2/apr --with-apr=/usr/local/apache2/apr --with-java-home=/usr/java/jdk1.5.0_12 <br />
            &nbsp;&nbsp;&nbsp;d. make <br />
            &nbsp;&nbsp;&nbsp;e. make install <br />
            &nbsp;&nbsp;&nbsp;f. 修改&nbsp;&nbsp;bin/catalina.sh 添加 CATALINA_OPTS=' -Djava.library.path=/usr/local/apache2/apr ' </div>
            </td>
        </tr>
    </tbody>
</table>
<img src ="http://www.blogjava.net/hilor/aggbug/180637.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2008-02-19 12:56 <a href="http://www.blogjava.net/hilor/articles/180637.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java string与date类型转换</title><link>http://www.blogjava.net/hilor/articles/159327.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Fri, 09 Nov 2007 04:27:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/159327.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/159327.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/159327.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/159327.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/159327.html</trackback:ping><description><![CDATA[<table width="100%">
    <tbody>
        <tr>
            <td>
            <li class="alt"><span><span>/**<br />
            &nbsp;&nbsp;&nbsp;&nbsp;<font color="#0000ff"><strong>SimpleDateFormat函数语法</strong>：<br />
            &nbsp;&nbsp;<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; G 年代标志符<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; y 年<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M 月<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; d 日<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; h 时 在上午或下午 (1~12)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; H 时 在一天中 (0~23)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m 分<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s 秒<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; S 毫秒<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E 星期<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D 一年中的第几天<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; F 一月中第几个星期几<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; w 一年中第几个星期<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; W 一月中第几个星期<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a 上午 / 下午 标记符 <br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k 时 在一天中 (1~24)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; K 时 在上午或下午 (0~11)<br />
            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; z 时区</font></span></span>
            <li class="alt"><span><span><font color="#0000ff">常见标准的写法"<strong><font color="#ff0000">yyyy-MM-dd HH:mm:ss</font></strong>",注意大小写，时间是24小时制，24小时制转换成12小时制只需将HH改成hh,不需要另外的函数。</font><br />
            */<br />
            </span></span>
            <li class="alt"><span></span>
            <li class="alt"><span><span>DateFormat format1 = </span><span class="keyword">new</span><span> SimpleDateFormat(</span><span class="string">"yyyy-MM-dd"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
            <li class="alt"><span><span>DateFormat format 2= </span><span class="keyword">new</span><span> SimpleDateFormat(</span><span class="string">"yyyy年MM月dd日 HH时mm分ss秒"</span><span>);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span>
            <li><span>Date date = </span><span class="keyword">null</span><span>;&nbsp;&nbsp;&nbsp;</span>
            <li class="alt"><span>String str = </span><span class="keyword">null</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
            <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
            <li class="alt"><span class="comment"><strong>// String转Date</strong> </span><span>&nbsp;&nbsp;</span>
            <li><span>str = </span><span class="string">"2007-1-18"</span><span>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>
            <li class="alt"><span class="keyword">try</span><span> {&nbsp;&nbsp;&nbsp;</span>
            <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; date = format1<strong><font color="#ff0000">.parse</font><font color="#ff0000">(</font></strong>str<strong><font color="#ff0000">)</font></strong>;&nbsp;&nbsp;</span>
            <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; data = format2.parse(str);</span>
            <li><span>} </span><span class="keyword">catch</span><span> (ParseException e) {&nbsp;&nbsp;&nbsp;</span>
            <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();&nbsp;&nbsp;&nbsp;</span>
            <li class="alt"><span>}&nbsp;&nbsp;&nbsp;</span>
            <li class="alt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <li class="alt"><strong>//Date转String </strong>
            <li class="alt">date=new Date();
            <li class="alt">str=format1<strong><font color="#ff0000">.format(</font></strong>date<font color="#ff0000"><strong>)</strong></font>;
            <li class="alt">str=format2.format(date); </li>
            </td>
        </tr>
    </tbody>
</table>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div>1、Date——&gt;String</div>
<div>String sdate;</div>
<div>Date ddate;</div>
<div>&#8230;&#8230;</div>
<div>sdate=(new SimpleDateFormat("yyyy-MM-dd")).format(ddate);</div>
<div></div>
<div></div>
<div>2、String——&gt;Date</div>
<div>SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");</div>
<div>sdf.setLenient(false);</div>
<div>String sdate="2006-06-06";</div>
<div>Date ddate;</div>
<div>ddate=sdf.parse(sdate);</div>
<div></div>
<div></div>
<div></div>
<div>另外<strong>Integer、Double等数据包装类型与String类型的相互转换</strong>为：</div>
<div>（以Integer为例）</div>
<div>Integer——&gt;String</div>
<div></div>
<div>Integer ii;</div>
<div>String si;</div>
<div>&#8230;&#8230;</div>
<div>si=ii.toString;</div>
<div></div>
<div></div>
<div>String——&gt;Intteger</div>
<div>
<div>Integer ii;</div>
<div>String si;</div>
<div>&#8230;&#8230;</div>
<div>ii=<strong><font color="#ff0000">Integer.valueOf(si);</font></strong></div>
<div><strong><font color="#ff0000"></font></strong></div>
<div><font color="#ff0000"><strong>附：</strong></font></div>
<div><font color="#000000"><strong>日期和时间模式(</strong><font color="#000000">摘自JDK1.50 DOC</font><strong>)</strong></font></div>
<div>
<p>日期和时间格式由<em>日期和时间模式</em> 字符串指定。在日期和时间模式字符串中，未加引号的字母 <code><font face="新宋体">'A'</font></code> 到 <code><font face="新宋体">'Z'</font></code> 和 <code><font face="新宋体">'a'</font></code> 到 <code><font face="新宋体">'z'</font></code> 被解释为模式字母，用来表示日期或时间字符串元素。文本可以使用单引号 (<code><font face="新宋体">'</font></code>) 引起来，以免进行解释。<code><font face="新宋体">"''"</font></code> 表示单引号。所有其他字符均不解释；只是在格式化时将它们简单复制到输出字符串，或者在分析时与输入字符串进行匹配。 </p>
<p>定义了以下模式字母（所有其他字符 <code><font face="新宋体">'A'</font></code> 到 <code><font face="新宋体">'Z'</font></code> 和 <code><font face="新宋体">'a'</font></code> 到 <code><font face="新宋体">'z'</font></code> 都被保留）： </p>
<blockquote>
<table cellspacing="3" cellpadding="0" summary="Chart shows pattern letters, date/time component, presentation, and examples." border="0">
    <tbody>
        <tr bgcolor="#ccccff">
            <th align="left">字母 </th>
            <th align="left">日期或时间元素 </th>
            <th align="left">表示 </th>
            <th align="left">示例 </th>
        </tr>
        <tr>
            <td><code><font face="新宋体">G</font></code> </td>
            <td>Era 标志符 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#text"><font color="#800080">Text</font></a> </td>
            <td><code><font face="新宋体">AD</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">y</font></code> </td>
            <td>年 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#year"><font color="#800080">Year</font></a> </td>
            <td><code><font face="新宋体">1996</font></code>; <code><font face="新宋体">96</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">M</font></code> </td>
            <td>年中的月份 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#month"><font color="#800080">Month</font></a> </td>
            <td><code><font face="新宋体">July</font></code>; <code><font face="新宋体">Jul</font></code>; <code><font face="新宋体">07</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">w</font></code> </td>
            <td>年中的周数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">27</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">W</font></code> </td>
            <td>月份中的周数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">2</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">D</font></code> </td>
            <td>年中的天数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">189</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">d</font></code> </td>
            <td>月份中的天数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">10</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">F</font></code> </td>
            <td>月份中的星期 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">2</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">E</font></code> </td>
            <td>星期中的天数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#text"><font color="#800080">Text</font></a> </td>
            <td><code><font face="新宋体">Tuesday</font></code>; <code><font face="新宋体">Tue</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">a</font></code> </td>
            <td>Am/pm 标记 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#text"><font color="#800080">Text</font></a> </td>
            <td><code><font face="新宋体">PM</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">H</font></code> </td>
            <td>一天中的小时数（0-23） </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">0</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">k</font></code> </td>
            <td>一天中的小时数（1-24） </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">24</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">K</font></code> </td>
            <td>am/pm 中的小时数（0-11） </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">0</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">h</font></code> </td>
            <td>am/pm 中的小时数（1-12） </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">12</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">m</font></code> </td>
            <td>小时中的分钟数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">30</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">s</font></code> </td>
            <td>分钟中的秒数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">55</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">S</font></code> </td>
            <td>毫秒数 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#number"><font color="#800080">Number</font></a> </td>
            <td><code><font face="新宋体">978</font></code> </td>
        </tr>
        <tr bgcolor="#eeeeff">
            <td><code><font face="新宋体">z</font></code> </td>
            <td>时区 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#timezone"><font color="#800080">General time zone</font></a> </td>
            <td><code><font face="新宋体">Pacific Standard Time</font></code>; <code><font face="新宋体">PST</font></code>; <code><font face="新宋体">GMT-08:00</font></code> </td>
        </tr>
        <tr>
            <td><code><font face="新宋体">Z</font></code> </td>
            <td>时区 </td>
            <td><a href="mk:@MSITStore:F:%20学习资料%20j2ee%20java%20j2se1.5中文api.chm::/java/text/SimpleDateFormat.html#rfc822timezone"><font color="#800080">RFC 822 time zone</font></a> </td>
            <td><code><font face="新宋体">-0800</font></code> </td>
        </tr>
    </tbody>
</table>
</blockquote></div>
</div>
<img src ="http://www.blogjava.net/hilor/aggbug/159327.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2007-11-09 12:27 <a href="http://www.blogjava.net/hilor/articles/159327.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javascript特殊字符转换</title><link>http://www.blogjava.net/hilor/articles/153819.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Thu, 18 Oct 2007 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/153819.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/153819.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/153819.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/153819.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/153819.html</trackback:ping><description><![CDATA[<div>javascript和JAVA一样,一些特殊字符需要转义</div>
<div>&nbsp;</div>
<div>特别是在一些JSP网页的开发中,好多程序员经常会忘掉这点,</div>
<div>例:</div>
<div>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span>&nbsp;<span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;List&nbsp;textList&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(List)request.getAttribute(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">textList</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);&nbsp;</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;!--</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;txtList&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Array();<br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;textList.size()&nbsp;;&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;{&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">6</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">txtList[</span><span style="color: #000000; background-color: #f5f5f5">&lt;%=</span><span style="color: #000000; background-color: #f5f5f5">i</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5">]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&lt;%=textList.get(i)%&gt;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">7</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;}&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">8</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">--&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">9</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
</div>
<div>&nbsp;</div>
<div>这段JS就存在问题,未对特殊符号进行处理.有特殊符号的情况下有可能报JSERROR</div>
<div>&nbsp;</div>
<div>JAVASCRIPT中需要转义的有:</div>
<div>&nbsp;</div>
<div>
<table cellspacing="0" rules="all" border="1">
    <tbody>
        <tr valign="top">
            <th width="35%"><font face="Arial" size="1">转义序列</font></th>
            <th width="65%"><font face="Arial" size="1">字符</font></th>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\b</font></td>
            <td width="65%"><font face="Arial" size="1">退格</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\f</font></td>
            <td width="65%"><font face="Arial" size="1">走纸换页</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\n</font></td>
            <td width="65%"><font face="Arial" size="1">换行</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\r</font></td>
            <td width="65%"><font face="Arial" size="1">回车</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\t</font></td>
            <td width="65%"><font face="Arial" size="1">横向跳格 (Ctrl-I)</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\'</font></td>
            <td width="65%"><font face="Arial" size="1">单引号</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\"</font></td>
            <td width="65%"><font face="Arial" size="1">双引号</font></td>
        </tr>
        <tr valign="top">
            <td width="35%"><font face="Arial" size="1">\\</font></td>
            <td width="65%"><font face="Arial" size="1">反斜杠</font></td>
        </tr>
    </tbody>
</table>
<br />
此外,对/符号我觉得也有必要进行处理,因为象 --&gt;&lt;/script&gt; 这样的字符串也会使SCRIPT出错.</div>
<div>&nbsp;</div>
<div>下面提供一个比较实用java的方法,做这个特殊符号的处理:</div>
<div>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img id="Codehighlighter1_29_936_Open_Image" onclick="this.style.display='none'; Codehighlighter1_29_936_Open_Text.style.display='none'; Codehighlighter1_29_936_Closed_Image.style.display='inline'; Codehighlighter1_29_936_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_29_936_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_29_936_Closed_Text.style.display='none'; Codehighlighter1_29_936_Open_Image.style.display='inline'; Codehighlighter1_29_936_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;JavaScriptUtils&nbsp;</span><span id="Codehighlighter1_29_936_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_29_936_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_84_903_Open_Image" onclick="this.style.display='none'; Codehighlighter1_84_903_Open_Text.style.display='none'; Codehighlighter1_84_903_Closed_Image.style.display='inline'; Codehighlighter1_84_903_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_84_903_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_84_903_Closed_Text.style.display='none'; Codehighlighter1_84_903_Open_Image.style.display='inline'; Codehighlighter1_84_903_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;String&nbsp;javaScriptEscape(String&nbsp;input)&nbsp;</span><span id="Codehighlighter1_84_903_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_84_903_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img id="Codehighlighter1_107_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_107_128_Open_Text.style.display='none'; Codehighlighter1_107_128_Closed_Image.style.display='inline'; Codehighlighter1_107_128_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_107_128_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_107_128_Closed_Text.style.display='none'; Codehighlighter1_107_128_Open_Image.style.display='inline'; Codehighlighter1_107_128_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(input&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_107_128_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_107_128_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;input;<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;StringBuffer&nbsp;filtered&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringBuffer(input.length());<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;prevChar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\u0000</span><span style="color: #000000">'</span><span style="color: #000000">;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;c;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img id="Codehighlighter1_272_413_Open_Image" onclick="this.style.display='none'; Codehighlighter1_272_413_Open_Text.style.display='none'; Codehighlighter1_272_413_Closed_Image.style.display='inline'; Codehighlighter1_272_413_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_272_413_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_272_413_Closed_Text.style.display='none'; Codehighlighter1_272_413_Open_Image.style.display='inline'; Codehighlighter1_272_413_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;input.length();&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_272_413_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_272_413_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;input.charAt(i);<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_315_352_Open_Image" onclick="this.style.display='none'; Codehighlighter1_315_352_Open_Text.style.display='none'; Codehighlighter1_315_352_Closed_Image.style.display='inline'; Codehighlighter1_315_352_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_315_352_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_315_352_Closed_Text.style.display='none'; Codehighlighter1_315_352_Open_Image.style.display='inline'; Codehighlighter1_315_352_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">"</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_315_352_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_315_352_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\\</span><span style="color: #000000">""</span><span style="color: #000000">);</span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\</span><span style="color: #000000">''</span><span style="color: #000000">)&nbsp;{</span><span style="color: #000000"><br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\'</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_440_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_440_478_Open_Text.style.display='none'; Codehighlighter1_440_478_Closed_Image.style.display='inline'; Codehighlighter1_440_478_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_440_478_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_440_478_Closed_Text.style.display='none'; Codehighlighter1_440_478_Open_Image.style.display='inline'; Codehighlighter1_440_478_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\\</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_440_478_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_440_478_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\\\</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img id="Codehighlighter1_504_539_Open_Image" onclick="this.style.display='none'; Codehighlighter1_504_539_Open_Text.style.display='none'; Codehighlighter1_504_539_Closed_Image.style.display='inline'; Codehighlighter1_504_539_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_504_539_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_504_539_Closed_Text.style.display='none'; Codehighlighter1_504_539_Open_Image.style.display='inline'; Codehighlighter1_504_539_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\t</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_504_539_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_504_539_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\t</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img id="Codehighlighter1_565_636_Open_Image" onclick="this.style.display='none'; Codehighlighter1_565_636_Open_Text.style.display='none'; Codehighlighter1_565_636_Closed_Image.style.display='inline'; Codehighlighter1_565_636_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_565_636_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_565_636_Closed_Text.style.display='none'; Codehighlighter1_565_636_Open_Image.style.display='inline'; Codehighlighter1_565_636_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\n</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_565_636_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_565_636_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img id="Codehighlighter1_594_631_Open_Image" onclick="this.style.display='none'; Codehighlighter1_594_631_Open_Text.style.display='none'; Codehighlighter1_594_631_Closed_Image.style.display='inline'; Codehighlighter1_594_631_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_594_631_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_594_631_Closed_Text.style.display='none'; Codehighlighter1_594_631_Open_Image.style.display='inline'; Codehighlighter1_594_631_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(prevChar&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\r</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_594_631_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_594_631_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img id="Codehighlighter1_662_697_Open_Image" onclick="this.style.display='none'; Codehighlighter1_662_697_Open_Text.style.display='none'; Codehighlighter1_662_697_Closed_Image.style.display='inline'; Codehighlighter1_662_697_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_662_697_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_662_697_Closed_Text.style.display='none'; Codehighlighter1_662_697_Open_Image.style.display='inline'; Codehighlighter1_662_697_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\r</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_662_697_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_662_697_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img id="Codehighlighter1_720_766_Open_Image" onclick="this.style.display='none'; Codehighlighter1_720_766_Open_Text.style.display='none'; Codehighlighter1_720_766_Closed_Image.style.display='inline'; Codehighlighter1_720_766_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_720_766_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_720_766_Closed_Text.style.display='none'; Codehighlighter1_720_766_Open_Image.style.display='inline'; Codehighlighter1_720_766_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\f</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_720_766_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_720_766_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\f</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img id="Codehighlighter1_787_843_Open_Image" onclick="this.style.display='none'; Codehighlighter1_787_843_Open_Text.style.display='none'; Codehighlighter1_787_843_Closed_Image.style.display='inline'; Codehighlighter1_787_843_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_787_843_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_787_843_Closed_Text.style.display='none'; Codehighlighter1_787_843_Open_Image.style.display='inline'; Codehighlighter1_787_843_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(c&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">'</span><span style="color: #000000">)&nbsp;</span><span id="Codehighlighter1_787_843_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_787_843_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(</span><span style="color: #000000">"</span><span style="color: #000000">\\/</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img id="Codehighlighter1_853_882_Open_Image" onclick="this.style.display='none'; Codehighlighter1_853_882_Open_Text.style.display='none'; Codehighlighter1_853_882_Closed_Image.style.display='inline'; Codehighlighter1_853_882_Closed_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_853_882_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_853_882_Closed_Text.style.display='none'; Codehighlighter1_853_882_Open_Image.style.display='inline'; Codehighlighter1_853_882_Open_Text.style.display='inline';" src="http://www.blogjava.net/Images/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span id="Codehighlighter1_853_882_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_853_882_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;filtered.append(c);<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;prevChar&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;c;<br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;filtered.toString();<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" />}<br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img src="http://www.blogjava.net/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<br />
<br />
上面的例子应改为:</div>
<div>
<div>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span>&nbsp;<span style="color: #000000; background-color: #ffff00">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;List&nbsp;textList&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(List)request.getAttribute(</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">textList</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">);&nbsp;</span><span style="color: #000000; background-color: #ffff00">%&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span>&nbsp;<span style="color: #0000ff">&lt;</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">3</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;!--</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">4</span>&nbsp;<span style="color: #0000ff; background-color: #f5f5f5">var</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;txtList&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">new</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;Array();<br />
</span><span style="color: #008080">5</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">for</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;(&nbsp;</span><span style="color: #0000ff; background-color: #f5f5f5">int</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;i&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">0</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">&lt;</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;textList.size()&nbsp;;&nbsp;i</span><span style="color: #000000; background-color: #f5f5f5">++</span><span style="color: #000000; background-color: #f5f5f5">)&nbsp;{&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">6</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">txtList[</span><span style="color: #000000; background-color: #f5f5f5">&lt;%=</span><span style="color: #000000; background-color: #f5f5f5">i</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5">]&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">=</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">&lt;%=JavaScriptUtils.javaScriptEscape(textList.get(i))%&gt;</span><span style="color: #000000; background-color: #f5f5f5">"</span><span style="color: #000000; background-color: #f5f5f5">;<br />
</span><span style="color: #008080">7</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">&lt;%</span><span style="color: #000000; background-color: #f5f5f5">&nbsp;}&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">%&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">8</span>&nbsp;<span style="color: #000000; background-color: #f5f5f5">--&gt;</span><span style="color: #000000; background-color: #f5f5f5"><br />
</span><span style="color: #008080">9</span>&nbsp;<span style="color: #0000ff">&lt;/</span><span style="color: #800000">script</span><span style="color: #0000ff">&gt;</span></div>
</div>
</div>
<img src ="http://www.blogjava.net/hilor/aggbug/153819.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2007-10-18 11:53 <a href="http://www.blogjava.net/hilor/articles/153819.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>开始→运行→输入的命令集锦</title><link>http://www.blogjava.net/hilor/articles/153227.html</link><dc:creator>hilor</dc:creator><author>hilor</author><pubDate>Tue, 16 Oct 2007 04:44:00 GMT</pubDate><guid>http://www.blogjava.net/hilor/articles/153227.html</guid><wfw:comment>http://www.blogjava.net/hilor/comments/153227.html</wfw:comment><comments>http://www.blogjava.net/hilor/articles/153227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hilor/comments/commentRss/153227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hilor/services/trackbacks/153227.html</trackback:ping><description><![CDATA[<p>开始&#8594;运行&#8594;输入的命令集锦<br />
gpedit.msc-----组策略 </p>
<p>　　sndrec32-------录音机 </p>
<p>　　Nslookup-------IP地址侦测器 </p>
<p>　　explorer-------打开资源管理器 </p>
<p>　　logoff---------注销命令 </p>
<p>　　tsshutdn-------60秒倒计时关机命令 </p>
<p>　　lusrmgr.msc----本机用户和组 </p>
<p>　　services.msc---本地服务设置 </p>
<p>　　oobe/msoobe /a----检查XP是否激活 </p>
<p>　　notepad--------打开记事本 </p>
<p>　　cleanmgr-------垃圾整理 </p>
<p>　　net start messenger----开始信使服务 </p>
<p>　　compmgmt.msc---计算机管理 </p>
<p>　　net stop messenger-----停止信使服务 </p>
<p>　　conf-----------启动 netmeeting </p>
<p>　　dvdplay--------DVD播放器 </p>
<p>　　charmap--------启动字符映射表 </p>
<p>　　diskmgmt.msc---磁盘管理实用程序 </p>
<p>　　calc-----------启动计算器 </p>
<p>　　dfrg.msc-------磁盘碎片整理程序 </p>
<p>　　chkdsk.exe-----Chkdsk磁盘检查 </p>
<p>　　devmgmt.msc--- 设备管理器 </p>
<p>　　regsvr32 /u *.dll----停止dll文件运行 </p>
<p>　　drwtsn32------ 系统医生 </p>
<p>　　rononce -p ----15秒关机 </p>
<p>　　dxdiag---------检查DirectX信息 </p>
<p>　　regedt32-------注册表编辑器 </p>
<p>　　Msconfig.exe---系统配置实用程序 </p>
<p>　　rsop.msc-------组策略结果集 </p>
<p>　　mem.exe--------显示内存使用情况 </p>
<p>　　regedit.exe----注册表 </p>
<p>　　winchat--------XP自带局域网聊天 </p>
<p>　　progman--------程序管理器 </p>
<p>　　winmsd---------系统信息 </p>
<p>　　perfmon.msc----计算机性能监测程序 </p>
<p>　　winver---------检查Windows版本 </p>
<p>　　sfc /scannow-----扫描错误并复原 </p>
<p>　　taskmgr-----任务管理器（2000／xp／2003)</p>
<img src ="http://www.blogjava.net/hilor/aggbug/153227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hilor/" target="_blank">hilor</a> 2007-10-16 12:44 <a href="http://www.blogjava.net/hilor/articles/153227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>