posts - 32,  comments - 3,  trackbacks - 0
            2011年5月27日

          發現現在幾乎所有的網站都對url中的漢字和特殊的字符,進行了urlencode操作,也就是:

          http://hi.baidu.com/%BE%B2%D0%C4%C0%CF%C8%CB/creat/blog/

          這個樣子,中間%形式的,肯定就是我的登錄用戶名稱了吧。

          為什么對這些字符進行了u的編碼形式,是為了字符編碼(gbk、utf8)還是為了不出現特殊的字符在url中?都知道要轉,但是轉了的真正好處呢。查看了網上的很多資料,也沒有找到更加準確的說法。

          url轉義其實也只是為了符合url的規范而已。因為在標準的url規范中中文和很多的字符是不允許出現在url中的。

          看一下php的urlencode的說明了。

          urlencode — 編碼 URL 字符串

          string urlencode ( string $str )

          返回字符串,此字符串中除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)后跟兩位十六進制數,空格則編碼為加號(+)。此編碼與 WWW 表單 POST 數據的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。由于歷史原因,此編碼在將空格編碼為加號(+)方面與 RFC1738 編碼(參見 rawurlencode())不同。此函數便于將字符串編碼并將其用于 URL 的請求部分,同時它還便于將變量傳遞給下一頁。

          標準的英文說明是:

          "...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*'()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."

          那哪些字符是需要轉化的呢?

          1. ASCII 的控制字符

          這些字符都是不可打印的,自然需要進行轉化。

          2. 一些非ASCII字符

          這些字符自然是非法的字符范圍。轉化也是理所當然的了。

          3. 一些保留字符

          很明顯最常見的就是“&”了,這個如果出現在url中了,那你認為是url中的一個字符呢,還是特殊的參數分割用的呢?

          4. 就是一些不安全的字符了。

          例如:空格。為了防止引起歧義,需要被轉化為“+”。

          明白了這些,也就知道了為什么需要轉化了,而轉化的規則也是很簡單的。

          按照每個字符對應的字符編碼,不是符合我們范圍的,統統的轉化為%的形式也就是了。自然也是16進制的形式。

          和字符編碼無關

          通過urlencode的轉化規則和目的,我們也很容易的看出,urleocode是基于字符編碼的。同樣的一個漢字,不同的編碼類型,肯定對應不同的urleocode的串。gbk編碼的有gbk的encode結果。

          apache等服務器,接受到字符串后,可以進行decode,但是還是無法解決編碼的問題。編碼問題,還是需要靠約定或者字符編碼的判斷解決。

          因此,urleocode只是為了url中一些非ascii字符,可以正確無誤的被傳輸,至于使用哪種編碼,就不是eocode所關心和解決的問題了。

          編碼問題,不是urlencode所要解決的。
          轉自:http://apps.hi.baidu.com/share/detail/32230450

          參考資料:

          http://www.blooberry.com/indexdot/html/topics/urlencoding.htm

          http://cn.php.net/manual/zh/function.urlencode.php

           

           

           

          posted @ 2011-08-10 13:16 donghang73 閱讀(10428) | 評論 (0)編輯 收藏

          在文件夾選項里改了驅動器或文件夾的圖標,發現雙擊打開硬盤變成了搜索

          解決方法:

          運行
          regsvr32 /i shell32.dll

          解決!

          posted @ 2011-08-05 10:27 donghang73 閱讀(244) | 評論 (0)編輯 收藏
          //首先在HEAD區加入要引用的JS
          <head>
          <script type="text/javascript" src="FCKEditor/fckeditor.js"></script> 
          <script type="text/javascript" language="javascript">
          function check()
          {
             // 取得FCKEditor的值,GetInstance(arg),這里的參數arg是FCKeditor實例名;
             //如聲明FCKeditor用var oFCKeditor = new FCKeditor('FCKEditor1',500,200,'Board'),則此時arg就是FCKEditor1;
                  var checkContent1 =FCKeditorAPI.GetInstance("FCKEditor1").GetXHTML();
                  if (checkContent1 == "")
                  {
                     strErr += '評論內容不能為空!\n\n';
              alert(strErr);
                  }
          }
          </script>
          </head>
          <%-- 把這段寫在需要顯示FCKEditor編輯框的地方 --%>
          <div class="FCKeditor">
          <script type="text/javascript">
              var sBasePath = "FCKEditor/";
              var oFCKeditor = new FCKeditor('FCKEditor1',500,200,'Board'); //實例名為FCKEditor1
              oFCKeditor.BasePath = sBasePath ;
              oFCKeditor.Create() ;
          </script>
          </div>
          <%-- 用于提交內容的按鈕,響應點擊事件為 check() --%>
          <input id="Button1" value="button" type="button" onclick="check()" />
          轉自:http://hi.baidu.com/myaspdotnet/blog/item/0b73cd3f0ab9f3c77c1e714a.html
          posted @ 2011-05-27 22:21 donghang73 閱讀(231) | 評論 (0)編輯 收藏
          主站蜘蛛池模板: 仁怀市| 湘乡市| 樟树市| 彭阳县| 连山| 华容县| 宽甸| 渑池县| 巴马| 保定市| 台州市| 东兰县| 旬邑县| 城市| 广灵县| 响水县| 宿松县| 汕尾市| 洪江市| 孝昌县| 九江市| 秦皇岛市| 临江市| 无锡市| 康乐县| 梧州市| 化德县| 靖边县| 舞钢市| 吉林省| 洞头县| 金昌市| 凤阳县| 双流县| 兴和县| 修水县| 滨州市| 石棉县| 剑阁县| 喀什市| 彭阳县|