国产视频网址在线,国产一区在线免费,99reav在线http://www.aygfsteel.com/drecry/category/39274.html家園zh-cnFri, 01 May 2009 12:23:13 GMTFri, 01 May 2009 12:23:13 GMT60幾種亂碼問題(轉)http://www.aygfsteel.com/drecry/archive/2009/05/01/268534.html王宏利王宏利Fri, 01 May 2009 10:12:00 GMThttp://www.aygfsteel.com/drecry/archive/2009/05/01/268534.htmlhttp://www.aygfsteel.com/drecry/comments/268534.htmlhttp://www.aygfsteel.com/drecry/archive/2009/05/01/268534.html#Feedback0http://www.aygfsteel.com/drecry/comments/commentRss/268534.htmlhttp://www.aygfsteel.com/drecry/services/trackbacks/268534.html

用什么編輯器可以使xml文件的中文變成UTF-8亂碼   
我把g b2312改成UTF-8瀏覽器提示出錯~~~

最簡單的Word應該可以完成轉換,另外UE和Edit++都支持轉換

=======================================================

在寫一個東東,是sqlserver后臺,用utf-8編碼,一直是剛出來還可,一刷新就成亂碼了,以為是sql的原因,一次 把<title></title>里的全刪了,就沒問題了,后來發現,最好把<META http-equiv=Content-Type content="textHtml; charset=utf-8">放在title前,不然有些還是會錯!
=======================================================

為每個jsp頁面設置了其編碼格式(utf-8),但傳遞數據到另一頁面時依然顯示為亂碼?  首先要需要了解的是web容器默認編碼是iso- 8859-1,一個漢字占用兩個字節,而在utf-8中一個漢字占用三個字節。所以在數據傳遞過程中,必須手動設定容器編碼格式,否則會出現字符位丟失的 情況。即3個字節變為兩個字節,自然會變成亂碼。為什么保存到數據庫中的數據都變成了亂碼?  原理同上,首先要搞清楚使用的數據庫默認的編碼格式,比如 mysql默認的字符編碼是ISO-8859-1。所以必須手動修改其默認編碼格式?! ∏宄艘陨蠁栴}后,再來看如何解決utf-8的亂碼問題。
1:設置web容器的編碼格式。為你的servlet的doGet或doPost方法開始處加入如下代碼:request.setCharacterEncoding("utf-8");
   response.setCharacterEncoding("utf-8");

2:為每個jsp頁面指定其編碼格式。<%@ page pageEncoding="utf-8"%>

3:在連接數據庫用的URL后加入:useUnicode=true;characterEncoding=utf-8 如:  url="jdbc:mysql:///db1?useUnicode=true;characterEncoding=utf-8",

4:為指定數據庫默認編碼格式。在C:\WINDOWS目錄下找到my.ini文件,并在[mysqld]中加入default-character- set=gbk,重新啟動mysql服務。  至此,亂碼問題全部解決。起初總搞上去不清,為什么要將mysql的默認編碼格式設置為gbk,后來由相關 的資料得知utf-8默認輸入編碼方式為gbk,默認輸出編碼方式為utf-16be。  個人認為,將數據進行utf-8進行編碼的目的(即將中文編碼 為%的形式),主要是為了在多層服務間進行數據傳輸時,防止發生字符丟失(如msn)。普通的web程序顯然沒有必要這樣做,只要使用以上方法進行處理, 就可以有效的解決亂碼問題,從而結省存儲空間。如果都像公司的SC系統那樣,將一個漢字編碼為18個字符后,再存儲到數據庫中,拋開效率不說,就存儲空間 的浪費就夠人受的,要知道,那是需要銀子地!
========================================================

ASP動態網頁下UTF-8頁面亂碼的解決方法

為什么在ASP里指定了codepage為65001還經常顯示亂碼。才子在這里將這個問題詳細解釋一下,以免很多朋友再走彎路,甚至排斥UTF-8。


如果你還不知道UTF-8是什么東東,那才子建議你先去搜索一下UTF-8的相關資料吧。


UTF-8編碼之所以被越來越多的人接受甚至喜歡,肯定是有道理的,在WEB2.0盛行的今天,在大談多瀏覽器兼容的同時,不得不想到字符編碼不同所造成的亂碼現象同樣需要得到很好的處理..... CHINAZ

在N年以前,IE6以下的所有版本,只要沒有安裝相應的字庫,訪問相關的頁面都是會亂碼的,例如,我是IE5 (Windows2000默認) 的版本,在沒有安裝IE繁體字庫的情況下,訪問任何繁體頁面的網站都是會亂碼的,當然前提是該頁面采用了BIG5的Charset,而UTF-8作為一種 國際編碼就能很好的處理該問題,只要將頁面存為UTF-8編碼格式,再在頁面上將codepage及charset全部定義為utf-8就可以在任何客戶 端瀏覽器中顯示出完全正確的內容,完全不會亂碼......


好了,這里以ASP頁面為例,以一個實例來看具體操作吧:

打開新建一個ASP頁面,相信玩ASP的朋友都會留意到,許多下載的源碼里,頁面最上方一般都有一句:


以下為引用的內容:

%@LANGUAGE="VBSCRIPT" CODEPAGE="936"% CHINAZ
 
CHINAZ

前面的language應該不用多說了,vbscript就是ASP默認的腳本語言,其實完全可以不用寫,寫了好像還會影響頁面執行效率,在這里我 們先不討論這個問題。后面的codepage就是關鍵了,目的就是告訴瀏覽器,此頁面是何種編碼,936代表是簡體中文,而950代表繁體中 文,65001就是我們今天說的UTF-8編碼了。我們將936改成65001。整句如下: CHINAZ

以下為引用的內容:

%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%
 

再加上輸出幾個中文字看看能不能正確顯示吧。 CHINAZ

以下為引用的內容:
<%
Response.Write "第一次測試UTF-8頁面"
%> 

OK,直接點擊“保存”,執行這個頁面看看,如果不出意外,大家可能看到顯示出的是 “一尾UTF-8頁”這幾個字,中文有亂碼的現象,什么原因呢?

OK,請大家再點擊最上面的 "文件" 菜單,選擇"另存為",最下面一行有個編碼,默認應該是ANSI的,請大家點下拉框,選擇UTF-8,再點保存,再執行試試看,如果不出意外,亂得更厲害 了,呵呵,暈了吧。別急,想想原因,因為我們做的頁面是HTML返回的,以前我們寫HTML時,看到body前面,也就是head里都有一句meta,應 該是這樣的: 

以下為引用的內容:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 

也就是指定頁面以gb2312編碼返回結果,一定要寫在有返回結果輸出的前面。大家都知道gb2312是簡體中文吧,我們今天說的是UTF-8編碼,我們就將gb2312改成UTF-8吧,全部代碼如下: CHINAZ

以下為引用的內容:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<%
Response.Write "第一次測試UTF-8頁面"
%> 

一,文件沒有存為對應的格式,

可能有網友認為將META元標記的解碼方式改一下,就可以實現GB2312轉UTF-8,或者UTF-8轉GB2312,這其實是錯誤的,雖然你把 GB2312編碼的網頁的Meta標記改為了Utf-8,但這樣的操作會讓你發現網頁出現了亂碼。究其原因你文件編碼格式還是gb2312的,這時你應把 文件存為utf-8,再改meta標記的解碼方式。對于將文件存為utf-8,很多朋友可能會用記事本去操作,我不建議這樣去做,因為用記事本轉換的編碼 而做的網頁會在W3C效驗時出現BOM錯誤,具體如下

Byte-Order Mark found in UTF-8 File. The Unicode Byte-Order Mark (BOM) in UTF-8 encoded files is known to cause problems for some text editors and older browsers. You may want to consider avoiding its use until it is better supported.

你可以用比較新版本的editplus和ultraedit都可以選擇保存為無BOM的utf-8格式。

二,文件缺少必要的標識

檢查Html標記里有沒有如下

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

檢查XML文檔里有沒有

<?xml version="1.0" encoding="utf-8"?>

utf-8或者gb2312,看你文檔的編碼。

如果是ASP動態頁面,最好加上以下幾句

以下為相關html文檔

 <%@ LANGUAGE = "VBScript" CodePage = "65001"%>

CodePage = "65001"中的65001代表是UTF-8編碼的文檔,GB2312編碼的是936

以下為相關vbscript文檔

 Session.CodePage=65001

另外網上還有如下的ASP代碼,我沒試過

以下為相關vbscript文檔

 Response.Charset="utf-8"



結論:采用UTF-8編碼,除了要將文件另存為UTF-8格式之外,還需要同時指定codepage及charset。



王宏利 2009-05-01 18:12 發表評論
]]>
Meta的http-equiv屬性詳解http://www.aygfsteel.com/drecry/archive/2009/04/29/268066.html王宏利王宏利Wed, 29 Apr 2009 03:00:00 GMThttp://www.aygfsteel.com/drecry/archive/2009/04/29/268066.htmlhttp://www.aygfsteel.com/drecry/comments/268066.htmlhttp://www.aygfsteel.com/drecry/archive/2009/04/29/268066.html#Feedback0http://www.aygfsteel.com/drecry/comments/commentRss/268066.htmlhttp://www.aygfsteel.com/drecry/services/trackbacks/268066.html
           meat標簽的http-equiv屬性語法格式是:<meta http-equiv="參數" content="參數變量值"> ;其中http-equiv屬性主要有以下幾種參數:

           1、Expires(期限)

           說明:可以用于設定網頁的到期時間。一旦網頁過期,必須到服務器上重新傳輸。

           用法:<meta http-equiv="expires" content="Wed, 20 Jun 2007 22:33:00 GMT">

           注意:必須使用GMT的時間格式。

           2、Pragma(cache模式)

           說明:禁止瀏覽器穎鏡丶撲慊 幕捍嬤蟹夢室趁婺諶蕁?br>
           用法:<meta http-equiv="Pragma" content="no-cache">

           注意:這樣設定,訪問者將無法脫機瀏覽。

           3、Refresh(刷新)

           說明:自動刷新并指向新頁面。

           用法:<meta http-equiv="Refresh" content="2;URL=http://www.net.cn/">

          注意:其中的2是指停留2秒鐘后自動刷新到URL網址。

           4、Set-Cookie(cookie設定)

          說明:如果網頁過期,那么存盤的cookie將被刪除。

           用法:<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Wednesday, 20-Jun-2007 22:33:00 GMT; path=/">

           注意:必須使用GMT的時間格式。

           5、Window-target(顯示窗口的設定)

           說明:強制頁面在當前窗口以獨立頁面顯示。

           用法:<meta http-equiv="Window-target" content="_top">

           注意:用來防止別人在框架里調用自己的頁面。

           6、content-Type(顯示字符集的設定)

           說明:設定頁面使用的字符集。

           用法:<meta http-equiv="content-Type" content="text/html; charset=gb2312">

          7、Pics-label(網頁等級評定)

           用法:<meta http-equiv="Pics-label" contect="">網頁等級評定

           說明:在IE的internet選項中有一項內容設置,可以防止瀏覽一些受限制的網站,而網站的限制級別就是通過meta屬性來設置的。

          還有Page_Enter、Page_Exit……


補充:

設定進入頁面時的特殊效果<meta    http-equiv="Page-Enter"    contect="revealTrans(duration=1.0,transtion=    12)">  
設定離開頁面時的特殊效果<meta    http-equiv="Page-Exit"    contect="revealTrans(duration=1.0,transtion=    12)">  

Duration的值為網頁動態過渡的時間,單位為秒。  
Transition是過渡方式,它的值為0到23,分別對應24種過渡方式。如下表:  
0    盒狀收縮    1    盒狀放射  
2    圓形收縮    3    圓形放射  
4    由下往上    5    由上往下  
6    從左至右    7    從右至左  
8    垂直百葉窗    9    水平百葉窗  
10    水平格狀百葉窗    11垂直格狀百葉窗  
12    隨意溶解    13從左右兩端向中間展開  
14從中間向左右兩端展開    15從上下兩端向中間展開  
16從中間向上下兩端展開    17    從右上角向左下角展開  
18    從右下角向左上角展開    19    從左上角向右下角展開  
20    從左下角向右上角展開    21    水平線狀展開  
22    垂直線狀展開    23    隨機產生一種過渡方式  

王宏利 2009-04-29 11:00 發表評論
]]>
主站蜘蛛池模板: 衡南县| 隆化县| 华容县| 海林市| 龙陵县| 静安区| 武宣县| 乌恰县| 英超| 缙云县| 湖南省| 南郑县| 万源市| 楚雄市| 阳春市| 荆门市| 呼伦贝尔市| 札达县| 邵阳县| 扎赉特旗| 无锡市| 新源县| 利川市| 开原市| 宝清县| 临泽县| 溧阳市| 华蓥市| 福鼎市| 特克斯县| 泰宁县| 云龙县| 邯郸县| 闵行区| 彭山县| 绵竹市| 望都县| 西乌珠穆沁旗| 柞水县| 哈巴河县| 临漳县|