﻿<?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-关注基于J2EE的系统设计与实现,总结项目经验与思考。-随笔分类-网上拾贝(非技术)</title><link>http://www.blogjava.net/NeonWay/category/7520.html</link><description>spring、hibernate、webwork框架实践与探索。</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 08:08:33 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 08:08:33 GMT</pubDate><ttl>60</ttl><item><title>gb2312 gbk unicode utf-8等编码解析</title><link>http://www.blogjava.net/NeonWay/archive/2007/01/29/96437.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Mon, 29 Jan 2007 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2007/01/29/96437.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/96437.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2007/01/29/96437.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/96437.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/96437.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/NeonWay/archive/2007/01/29/96437.html'>阅读全文</a><img src ="http://www.blogjava.net/NeonWay/aggbug/96437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2007-01-29 09:59 <a href="http://www.blogjava.net/NeonWay/archive/2007/01/29/96437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Oracle-MTS经过防火墙的设定</title><link>http://www.blogjava.net/NeonWay/archive/2006/08/25/65830.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Fri, 25 Aug 2006 09:05:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/08/25/65830.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/65830.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/08/25/65830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/65830.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/65830.html</trackback:ping><description><![CDATA[
		<font size="2">
				<strong>Oracle-MTS经过防火墙的设定<br /><br /></strong>　　如果Oracle资料库和client端连线有经过firewall，在MTS模式下连线的设定可能需要特别注意，因为就算你防火墙开通了1521 port，但是在MTS下listener会把连线要求redirect给dispatcher，而dispatcher的port又是random port，这时候你可以选择client端改用Dedicated 连线，或者修改dispatcher设定来达成正常连结，而不会出现ORA-12535: TNS:operation timed out。  <br />　　1)client端改用Dedicated mode<br />　　DD =<br />　　(DESCRIPTION =<br />　　(ADDRESS_LIST =<br />　　(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))<br />　　)<br />　　(CONNECT_DATA =<br />　　(SID = DD)<br />　　(SERVER = DEDICATED)<br />　　)<br />　　)  <br />　　2)修改dispatcher固定使用port number  <br />　　# vi initSID.ora<br />　　*.dispatchers="(address=(protocol=tcp)(port=5000))(dispatchers=3)"  <br />　　# restart instance  <br />　　# SQL&amp;gt; select name,network from v$dispatcher  <br />　　NAME NETWORK<br />　　---- --------------------------------------------------<br />　　D000 (ADDRESS=(PROTOCOL=tcp)(HOST=ora1)(PORT=5000))<br />　　D001 (address=(protocol=tcp)(port=5000))<br />　　D002 (address=(protocol=tcp)(port=5000))  <br />　　# netstat -al |grep 5000  <br />　　tcp 0 0 *:5000 *:* LISTEN  <br />　　# 开放firewall 5000 port number<br /><br />转:http://www.sysop.com.cn/forum/archiver/tid-66810.html</font>
<img src ="http://www.blogjava.net/NeonWay/aggbug/65830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-08-25 17:05 <a href="http://www.blogjava.net/NeonWay/archive/2006/08/25/65830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>汉字编码解析</title><link>http://www.blogjava.net/NeonWay/archive/2006/07/05/56665.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Wed, 05 Jul 2006 02:45:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/07/05/56665.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/56665.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/07/05/56665.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/56665.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/56665.html</trackback:ping><description><![CDATA[
		<p>
				<font size="2">一、汉字编码的种类 <br />    汉字编码中现在主要用到的有三类，包括GBK，GB2312和Big5。 <br />    1 、GB2312又称国标码， 由国家标准总局发布， 1981 年 5 月 1 日实施，通行于大陆。新加坡等地也使用此编码。它是一个简化字的编码规范，当然也包括其他的符号、字母、日文假名等，共 7445 个图形字符，其中汉字占 6763 个。我们平时说 6768 个汉字，实际上里边有 5 个编码为空白，所以总共有 6763 个汉字。 </font>
		</p>
		<p>
				<font size="2">      GB2312 规定“对任意一个图形字符都采用两个字节表示，每个字节均采用七位编码表示”，习惯上称第一个字节为“高字节”，第二个字节为“低字节”。 GB2312 中汉字的编码范围为，第一字节0xB0-0xF7(对应十进制为176-247)，第二个字节0xA0-0xFE（对应十进制为160-254）。 </font>
		</p>
		<p>
				<font size="2">    GB2312 将代码表分为 94 个区，对应第一字节（ 0xa1-0xfe ）；每个区 94 个位（ 0xa1-0xfe ），对应第二字节，两个字节的值分别为区号值和位号值加 32 （ 2OH ），因此也称为区位码。 01-09 区为符号、数字区， 16-87 区为汉字区（ 0xb0-0xf7 ）， 10-15 区、 88-94 区是有待进一步标准化的空白区。 </font>
		</p>
		<p>
				<font size="2">       2 、 Big5 又称大五码，主要为香港与台湾使用，即是一个繁体字编码。 每个汉字由两个字节构成，第一个字节的范围从 0X81 － 0XFE （即 129-255 ），共 126 种。第二个字节的范围不连续，分别为 0X40 － 0X7E （即 64-126 ）， 0XA1 － 0XFE （即 161-254 ），共 157 种。 </font>
		</p>
		<p>
				<font size="2">    3 、GBK是GB2312的扩展，是向上兼容的，因此GB2312中的汉字的编码与GBK中汉字的相同。另外，GBK中还包含繁体字的编码，它与Big5编码之间的关系我还没有弄明白，?孟袷遣灰恢碌摹?GBK中每个汉字仍然包含两个字节，第一个字节的范围是0x81-0xFE（即129-254），第二个字节的范围是0x40-0xFE（即64-254）。GBK中有码位23940个，包含汉字21003个。                          <br />                   <br /><span style="COLOR: black; FONT-FAMILY: 宋体">表<span lang="EN-US">1 </span>汉字编码范围</span></font>
		</p>
		<table class="MsoTableGrid" id="table1" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN-LEFT: 50.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
				<tbody>
						<tr>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 81pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="108">
										<p class="MsoNormal">
												<span style="COLOR: black; FONT-FAMILY: 宋体">
														<font color="#000000" size="2">名称</font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 144pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="192">
										<p class="MsoNormal">
												<span style="COLOR: black; FONT-FAMILY: 宋体">
														<font color="#000000" size="2">第一字节</font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 153pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="204">
										<p class="MsoNormal">
												<span style="COLOR: black; FONT-FAMILY: 宋体">
														<font color="#000000" size="2">第二字节</font>
												</span>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 81pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="108">
										<p class="MsoNormal">
												<span lang="EN-US" style="COLOR: black">
														<font color="#000000" size="2">GB2312</font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 144pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="192">
										<p class="MsoNormal">
												<span lang="EN-US" style="COLOR: black">
														<font color="#000000" size="2">0xB0-0xF7(176-247) </font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 153pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="204">
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0xA0-0xFE</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">160-254</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 81pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="108">
										<p class="MsoNormal">
												<span lang="EN-US" style="COLOR: black">
														<font color="#000000" size="2">GBK</font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 144pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="192">
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0x81-0xFE</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">129-254</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 153pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="204">
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0x40-0xFE</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">64-254</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
								</td>
						</tr>
						<tr>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 81pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="108">
										<p class="MsoNormal">
												<span lang="EN-US" style="COLOR: black">
														<font color="#000000" size="2">Big5</font>
												</span>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 144pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="192">
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0x81-0xFE</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">129-255</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
								</td>
								<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: medium none; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; WIDTH: 153pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="204">
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0x40-0x7E</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">64-126</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
										<p class="MsoNormal">
												<font color="#000000">
														<font size="2">
																<span lang="EN-US" style="COLOR: black">0xA1</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">－</span>
																<span lang="EN-US" style="COLOR: black">0xFE</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">（</span>
																<span lang="EN-US" style="COLOR: black">161-254</span>
																<span style="COLOR: black; FONT-FAMILY: 宋体">）</span>
														</font>
												</font>
										</p>
								</td>
						</tr>
				</tbody>
		</table>
		<p>
				<font size="2">二、对汉字进行hash </font>
		</p>
		<p>
				<font size="2">    为了处理汉字的方便，在查找汉字的时候，我们通常会用到hash的方法，那怎么来确定一个汉字位置呢？这就和每种编码的排列有关了，这里主要给出一种hash函数的策略。 </font>
		</p>
		<p>
				<font size="2">    对于GB2312编码，设输入的汉字为GBword，我们可以采用公式(C1-176)*94 + (C2-161)确定GBindex。其中，C1表示第一字节，C2表示第二字节。具体如下： </font>
		</p>
		<p>
				<font size="2">    GBindex = ((unsigned char)GBword.at(0)-176)*94 + (unsigned char)GBword.at(1) - 161; </font>
		</p>
		<p>
				<font size="2">    之所以用unsigned char类型，是因为char是一个字节. </font>
		</p>
		<p>
				<font size="2">    对于GBK编码，设输入的汉字为GBKword，则可以采用公式   index=(ch1-0x81)*190+(ch2-0x40)-(ch2/128) ，其中ch1是第一字节，ch2是第二字节。 </font>
		</p>
		<p>
				<font size="2">    具体的， </font>
		</p>
		<p>
				<font size="2">    GBKindex = ((unsigned char)GBKword[0]-129)*190 + </font>
		</p>
		<p>
				<font size="2">               ((unsigned char)GBKword[1]-64) - (unsigned char)GBKword[1]/128; </font>
		</p>
		<p>
				<font size="2">三、怎样判断一个汉字的是什么编码 </font>
		</p>
		<p>
				<font size="2">1 、判断是否是GB2312 </font>
		</p>
		<p>
				<font size="2">bool isGBCode(const string&amp; strIn) </font>
		</p>
		<p>
				<font size="2">{ </font>
		</p>
		<p>
				<font size="2">    unsigned char ch1; </font>
		</p>
		<p>
				<font size="2">    unsigned char ch2; </font>
		</p>
		<p>
				<font size="2">    </font>
		</p>
		<p>
				<font size="2">    if (strIn.size() &gt;= 2) </font>
		</p>
		<p>
				<font size="2">    { </font>
		</p>
		<p>
				<font size="2">        ch1 = (unsigned char)strIn.at(0); </font>
		</p>
		<p>
				<font size="2">        ch2 = (unsigned char)strIn.at(1); </font>
		</p>
		<p>
				<font size="2">        if (ch1&gt;=176 &amp;&amp; ch1&lt;=247 &amp;&amp; ch2&gt;=160 &amp;&amp; ch2&lt;=254) </font>
		</p>
		<p>
				<font size="2">            return true; </font>
		</p>
		<p>
				<font size="2">        else return false; </font>
		</p>
		<p>
				<font size="2">    } </font>
		</p>
		<p>
				<font size="2">    else return false; </font>
		</p>
		<p>
				<font size="2">} </font>
		</p>
		<p>
				<font size="2">2 、判断是否是GBK编码 </font>
		</p>
		<p>
				<font size="2">bool isGBKCode(const string&amp; strIn) </font>
		</p>
		<p>
				<font size="2">{ </font>
		</p>
		<p>
				<font size="2">    unsigned char ch1; </font>
		</p>
		<p>
				<font size="2">    unsigned char ch2; </font>
		</p>
		<p>
				<font size="2">    </font>
		</p>
		<p>
				<font size="2">    if (strIn.size() &gt;= 2) </font>
		</p>
		<p>
				<font size="2">    { </font>
		</p>
		<p>
				<font size="2">        ch1 = (unsigned char)strIn.at(0); </font>
		</p>
		<p>
				<font size="2">        ch2 = (unsigned char)strIn.at(1); </font>
		</p>
		<p>
				<font size="2">        if (ch1&gt;=129 &amp;&amp; ch1&lt;=254 &amp;&amp; ch2&gt;=64 &amp;&amp; ch2&lt;=254) </font>
		</p>
		<p>
				<font size="2">            return true; </font>
		</p>
		<p>
				<font size="2">        else return false; </font>
		</p>
		<p>
				<font size="2">    } </font>
		</p>
		<p>
				<font size="2">    else return false; </font>
		</p>
		<p>
				<font size="2">} </font>
		</p>
		<p>
				<font size="2">3 、对于Big5 </font>
		</p>
		<p>
				<font size="2">    它的范围为：高字节从0xA0到0xFE，低字节从0x40到0x7E，和0xA1到0xFE两部分。判断一个汉字是否是BIG5编码，可以如上对字符的编码范围判断即可。如何定位呢？那么也想象所有编码排列为一个二维坐标，纵坐标是高字节，横坐标是低字节。这样一行上的汉字个数：(0x7E-0x40+1)+(0xFE-0xA1+1)＝157。那么定位算法分两块，为:   </font>
		</p>
		<p>
				<font size="2">    if 0x40&lt;=ch2&lt;=0x7E: #is big5 char </font>
		</p>
		<p>
				<font size="2">    index=((ch1-0xA1)*157+(ch2-0x40))*2 </font>
		</p>
		<p>
				<font size="2">    elif 0xA1&lt;=ch2&lt;=0xFE: #is big5 char </font>
		</p>
		<p>
				<font size="2">    index=((ch1-0xA1)*157+(ch2-0xA1+63))*2 </font>
		</p>
		<p>
				<font size="2">四、如果判断一个字符是西文字符还是中文字符 </font>
		</p>
		<p>
				<font size="2">    大家知道西文字符主要是指 ASCII 码，它用一个字节表示。且这个字符转换成数字之后，该数字是大于0的，而汉字是两个字节的，第一个字节的转化为数字之后应该是小于0的，因此可以根据每个字节转化为数字之后是否小于0，判断它是否是汉字。 </font>
		</p>
		<p>
				<font size="2">    例如，设输入字为strin，则， </font>
		</p>
		<p>
				<font size="2">     If (strin.at(0) &lt; 0) </font>
		</p>
		<p>
				<font size="2">       cout &lt;&lt; ” 是汉字” &lt;&lt; endl; </font>
		</p>
		<p>
				<font size="2">     else cout &lt;&lt; ” 不是汉字” &lt;&lt; endl; </font>
		</p>
		<p>
				<font size="2">　补充： </font>
		</p>
		<p>
				<font size="2">1．汉字外部码<br />　　汉字外部码又称为汉字输入码，是指从键盘上输入汉字时采用的编码。汉字输入编码有很多种，目前广泛使用的输入码为：<br />　　① 国标区位码<br />　　② 以汉字读音为基础的拼音码，如全拼输入法、双拼输入法、词汇输入法、智能ABC输入法等；<br />　　③ 以汉字字形为基础的拼形码，如五笔字型输入法；<br />　　不同的汉字输入方法有不同的外码，但内码只能有一个。好的输入方法应具备规则简单、操作方便、容易记忆、重码率低、速度快等特点。 </font>
		</p>
		<p>
				<font size="2">2．汉字国标码<br />　　GB2312-80编码简称国标码。由于汉字数量大，无法用一个字节进行编码，因此使用两个字节对汉字进行编码。规定两个字节的最高位用来区分ASCII码。这样国标码用两个字节的低7位对汉字进行编码。 </font>
		</p>
		<p>
				<font size="2">一个字节只能有128-34=94种状态用于汉字编码（34是指34种控制字符），两个字节可以表示94×94=8836种状态。在基本集中汉字是按规则排列成94行和94列的矩阵，形成汉字编码表，其行号称为区号，列号称为位号，第一个字节表示汉字在国标字符集中的区号，第二个字节表示汉字在国标字符集中的位号。每一个汉字在94×94的矩阵中都有一个固定的区号和位号。<br />　　例如：汉字“大”的区号为20，位号为83，即“大”的区位码为2083。<br />　　国标码是以十六进制数字编码，编码范围是从2121H（21H即为十进制的33）到7F7FH（7FH即为十进制的127）。<br />　　因此，国标码=区位码（用十六进制表示）+2020H。<br />3．汉字机内码<br />　　机内码是指一个汉字被计算机内部系统进行存储、处理和传输时而使用的编码。为了保证中西文兼容，同时又能区分ASCII码和汉字，因此，机内码就是将国标码的两个字节的最高位置为“1”。<br />所以，机内码=国标码+8080H=区位码（用十六进制表示）+A0A0H 。 </font>
		</p>
		<p>
				<font size="2">4．汉字字形码<br />　　字形码又称汉字字模，用于汉字的输出。汉字的字形通常采用点阵的方式产生。汉字点阵有16×16点阵、32×32点阵、64×64点阵，点阵不同，汉字字形码的长度也不同。点阵数越大，字形质量越高，字形码占用的字节数越多。<br />　　如图1.1是“国”字24×24的点阵字形。深色小正方形可以表示一个二进制位的信息“1”，浅色小正方形表示二进制位的信息“0”。<br />　　汉字字形码又称为汉字输出码或汉字发生器的编码。<br />　　例：按32×32点阵存放两级汉字的汉字库，大约需要占用多少字节？<br />　　解：32×32×6763÷8=865664B≈845KB<br />　　大约需要845KB。 </font>
		</p>
<img src ="http://www.blogjava.net/NeonWay/aggbug/56665.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-07-05 10:45 <a href="http://www.blogjava.net/NeonWay/archive/2006/07/05/56665.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Win XP中快速转换FAT32至NTFS</title><link>http://www.blogjava.net/NeonWay/archive/2006/05/25/48015.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Thu, 25 May 2006 05:50:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/05/25/48015.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/48015.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/05/25/48015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/48015.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/48015.html</trackback:ping><description><![CDATA[
		<p>Windows XP本身支持NTFS分区，使用NTFS分区的安全程度和磁盘管理比其他分区格式要好。在安装Windows XP时，系统会自动让你选择是否将现有分区转化为NTFS分区，如果当时没有选择，而现在又想将硬盘转为NTFS，除了使用Partition Magic等工具软件外，其实还有一个更为简单实用的方法。</p>
		<p>1.点“开始→程序→附件→命令”提示符(这是Windows XP内置的一个类似于DOS的界面，内部所有的指令语句和DOS下的基本相同)。</p>
		<p>2.打开窗口以后，在光标的提示符下输入“covert c:/FS:NTFS”，然后回车。注意在“covert”的后面有一个空格。</p>
		<p>3.接着系统会要求你输入C盘的卷标，然后回车。卷标在“我的电脑”中点C盘，然后看它的属性可以找到。</p>
		<p>这样就可简单地转换分区格式为NTFS了。这个方法只用于FAT32转为NTFS，不能将NTFS转为FAT32。</p>
<img src ="http://www.blogjava.net/NeonWay/aggbug/48015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-05-25 13:50 <a href="http://www.blogjava.net/NeonWay/archive/2006/05/25/48015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序员每天该做的事 </title><link>http://www.blogjava.net/NeonWay/archive/2006/04/25/42977.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Tue, 25 Apr 2006 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/04/25/42977.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/42977.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/04/25/42977.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/42977.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/42977.html</trackback:ping><description><![CDATA[
		<font size="2">程序员每天该做的事 <br />1、总结自己一天任务的完成情况 <br />最好的方式是写工作日志，把自己今天完成了什么事情，遇见了什么问题都记录下来，日后翻看好处多多 <br /><br />2、考虑自己明天应该做的主要工作 <br />把明天要做的事情列出来，并按照优先级排列，第二天应该把自己效率最高的时间分配给最重要的工作 <br /><br />3、考虑自己一天工作中失误的地方，并想出避免下一次再犯的方法 <br />出错不要紧，最重要的是不要重复犯相同的错误，那是愚蠢 <br /><br />4、考虑自己一天工作完成的质量和效率能否还能提高 <br />一天只提高1%，365天你的效率就能提高多少倍你知道吗？ (1+0.01)^365 = 37 倍 <br /><br />5、看一个有用的新闻网站或读一张有用的报纸，了解业界动态 <br />闭门造车是不行的，了解一下别人都在做什么，对自己能带来很多启示 <br /><br />6、记住一位同事的名字及其特点 <br />你认识公司的所有同事吗？你了解他们吗？ <br /><br />7、清理自己的代码 <br />今天完成的代码，把中间的调试信息，测试代码清理掉，按照编码风格整理好，注释都写好了吗？ <br /><br />8、清理自己的桌面 <br />当日事当日毕，保持清洁干劲的桌面才能让你工作时不分心，程序员特别要把电脑的桌面清理干净 <br /><br />程序员每周该做的事 <br />1、向你的老板汇报一次工作 <br />让你的老板知道你在做什么，这很重要。可以口头、书面、邮件，看你老板的工作方式而定 <br /><br />2、进行一次自我总结（非正式） <br />这周之内自己表现得怎么样？该加分还是扣分？ <br /><br />3、制定下周计划 <br />把下周要做的事情列出来，一样要分清楚优先级 <br /><br />4、整理自己的文件夹、书柜和电脑文件 <br />把桌面以外的地方也要清理干净，电脑的文件夹，收到的邮件，把过时的垃圾全部清理掉 <br /><br />5、与一个非公司的朋友沟通 <br />它山之石，可以攻玉 <br /><br />6、看一本杂志 <br />找一本适合自己的专业杂志 <br /><br />7、纠正自己或同事一个细节上的不正确做法 <br />《细节决定成败》看过了吗？没看过强烈建议先看看 <br /><br />程序员每月该做的事 <br />1、至少和一个同事一起吃饭或喝茶 <br />不光了解自己工作伙伴的工作，还要了解他们的生活 <br /><br />2、自我考核一次 <br />相对正式地考核自己一下，你对得起这个月的工资吗？ <br /><br />3、对你的同事考核一次 <br />你的同事表现怎么样？哪些人值得学习，哪些人需要帮助？ <br /><br />3、制定下月的计划，确定下月的工作重点 <br /><br />4、总结自己工作质量改进状况 <br />自己的质量提高了多少？ <br /><br />5、有针对性地对一项工作指标做深入地分析并得出改进的方案 <br />可以是对自己的，也可以是对公司的，一定要深入地分析后拿出自己的观点来。要想在老板面前说得上话，做的成事，工作上功夫要做足。 <br /><br />6、与老板沟通一次 <br />最好是面对面地沟通，好好表现一下自己，虚心听取老板的意见，更重要的是要了解老板当前关心的重点 <br /><br />程序员每年该做的事 <br />1、年终总结 <br />每个公司都会做的事情，但你真正认真地总结过自己吗？ <br /><br />2、兑现给自己、给家人的承诺 <br />给老婆、儿子的新年礼物买了没有？给自己的呢？ <br /><br />3、下年度工作规划 <br />好好想想自己明年的发展目标，争取升职/加薪、跳槽还是自己出来干？ <br /><br />4、掌握一项新技术 <br />至少是一项，作为程序员一年要是一项新技术都学不到手，那就一定会被淘汰。 <br />掌握可不是看本书就行的，要真正懂得应用，最好你能够写一篇教程发表到你的blog <br /><br />5、推出一种新产品 <br />可以是一个真正的产品，也可以只是一个类库，只要是你创造的东西就行，让别人使用它，也为世界作点贡献。当然如果真的很有价值，收点注册费也是应该的 <br /><br />6、与父母团聚一次 <br />常回家看看，常回家看看 <br /><br />摘自：<a href="http://dev.csdn.net/article/82/82919.shtm">http://dev.csdn.net/article/82/82919.shtm</a></font>
<img src ="http://www.blogjava.net/NeonWay/aggbug/42977.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-04-25 11:32 <a href="http://www.blogjava.net/NeonWay/archive/2006/04/25/42977.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>解决桌面反转的问题</title><link>http://www.blogjava.net/NeonWay/archive/2006/03/01/32959.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Wed, 01 Mar 2006 01:25:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/03/01/32959.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/32959.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/03/01/32959.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/32959.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/32959.html</trackback:ping><description><![CDATA[早上起来，一同事桌面被反转，开始怀疑是病毒做怪，但查毒后没发现病毒，在网上查询后找到解决方法：ctrl+alt+方向键 ，呵呵，问题解决。<img src ="http://www.blogjava.net/NeonWay/aggbug/32959.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-03-01 09:25 <a href="http://www.blogjava.net/NeonWay/archive/2006/03/01/32959.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>去掉Intel集成显卡的桌面右键菜单</title><link>http://www.blogjava.net/NeonWay/archive/2006/02/24/32271.html</link><dc:creator>王彦锋的技术实践</dc:creator><author>王彦锋的技术实践</author><pubDate>Fri, 24 Feb 2006 03:25:00 GMT</pubDate><guid>http://www.blogjava.net/NeonWay/archive/2006/02/24/32271.html</guid><wfw:comment>http://www.blogjava.net/NeonWay/comments/32271.html</wfw:comment><comments>http://www.blogjava.net/NeonWay/archive/2006/02/24/32271.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/NeonWay/comments/commentRss/32271.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/NeonWay/services/trackbacks/32271.html</trackback:ping><description><![CDATA[芯片组主板集成显卡安装驱动后，右键点击桌面时菜单显示迟缓的问题:<BR>&nbsp;&nbsp; 去掉Intel集成显卡的桌面右键菜单:<BR>&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; 运行里输入:regsvr32 /u igfxpph.dll <BR>&nbsp;&nbsp; 恢复使用:<BR>&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; 运行里输入regsvr32 igfxpph.dll <img src ="http://www.blogjava.net/NeonWay/aggbug/32271.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/NeonWay/" target="_blank">王彦锋的技术实践</a> 2006-02-24 11:25 <a href="http://www.blogjava.net/NeonWay/archive/2006/02/24/32271.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>