導航:首頁 > IDC知識 > 伺服器內碼

伺服器內碼

發布時間:2020-11-01 22:29:45

1、如何解決JavaWeb亂碼問題

request-line中的URL部分必須以application/x-www-form-urlencoded方式編碼。編碼時使用的字元集是當前網頁在瀏覽器上顯示時所使用的字元集。

JDK中專門有兩個類處理application/x-www-form-urlencoded類型的數據,它們是URLEncoder及URLDecoder。當網頁上的數據需要手動進行URLEncoding處理時,可使用URLEncoder類完成編碼工作。需要手動進行URLEncoding處理的位置包括:

鏈接(<a></a>)中的href標簽屬性;

以POST方式提交的表單(<form></form>)中的action標簽屬性。

例如,網頁上不應該產生這樣的鏈接:

[xhtml] view plain copy

<!-- 不正確的寫法 -->  

<a href="/hello/checkUser.html?opt=中文>使用者身份驗證"</a>  

正確的寫法是:

[xhtml] view plain copy

<!-- 使用UTF-8字元集進行URLEncoding的結果 -->  

<a href="/hello/checkUser.html?opt=%E4%B8%AD%E6%96%87">使用者身份驗證</a>  

為此,方案之一可以在JSP網頁上使用腳本化語言進行URLEncoding處理。如:

[xhtml] view plain copy

<%@page import="java.net.URLEncoder"%>  

<a href="/hello/checkUser.html?opt=<%=URLEncoder.encode("中文", "UTF-8")%>">使用者身份驗證</a>  

request-body的編碼處理

request-body只有在POST提交的方式下才會產生。request-body的編碼方式由表單的enctype標簽屬性指定,同request-line一樣,編碼request-body時使用的字元集也是當前網頁在瀏覽器上顯示時所使用的字元集。request-body的編碼過程由客戶端瀏覽器自動完成,不需要額外的編程處理。

伺服器的處理

相對於用戶端,伺服器端在接收到HTTP請求時提供了兩種處理請求數據的方式:自動處理與不處理。
伺服器一般會自動處理application/x-www-form-urlencoded類型的數據(包括request-line及request-body中的數據),就servlet(Servlet類或JSP網頁)而言,可以通過request對象的getParameter()或getParameterValues()取得這些數據。對於除此以外的其它MIME類型的數據,HTTP伺服器則是將處理的過程直接交到了與HTTP請求相對應的servlet(Servlet類或JSP網頁)身上。
例如用戶端有以下表單被提交:

[xhtml] view plain copy

<form action="checkUser.html?opt=xxx" method="POST">    

<input type="text" name="username" value="yyy"/>    

<input type="text" name="username" value="zzz"/>    

<inupt type="submit" value="submit"/>    

</form>  

表單提交時經伺服器端自動處理後與checkUser.html相對應的servlet(Servlet類或JSP網頁)可以通過下面的方式取得數據:

[java] view plain copy

String opt = request.getParameter("opt");  

String[] users = request.getParameterValues("username");  

默認情況下,伺服器對於接收到的application/x-www-form-urlencoded類型數據進行字元集為ISO-8859-1的URLDecoding處理,經過處理之後的字元串內碼為ISO-8859-1。對於沒有附加任何設置的HTTP伺服器而言,我們的servlet在取得數據之後必須進行相應的解碼處理,生成內碼為UTF-16(unicode)的字元串。
例如對於用戶端請求數據中以UTF-8字元集進行URLEncoding的數據,servlet需要進行如下方式的解碼:

[java] view plain copy

String opt = request.getParameter("opt");  

if (opt!=null && !"".equals(opt)) {  

opt = new String(opt.getBytes("ISO-8859-1"), "UTF-8");  

}  

為了避免這種額外的編碼/解碼處理,也就是說讓伺服器了解到用戶端在URLEncoding時所使用的字元集,從而直接進行相應字元集的URLDecoding處理,不同的HTTP伺服器提供了不同的解決方案。
以Tomcat為例,Tomcat自動解碼request-line的處理方式由Tomcat的配置文件server.xml指定。在server.xml中的Connector標簽中提供了URIEncoding標簽屬性,只要為其指定解碼用的字元集,Tomcat就會自動解碼request-line中經過application/x-www-form-urlencoded編碼處理的數據。例如:

<Connector connectionTimeout="40000" port="8080" protocol="HTTP/1.1"
URIEncoding="UTF-8" redirectPort="8443"/>

Tomcat自動解碼request-body的處理方式是設置request的characterEncoding值。如:

request.setCharacterEncoding("UTF-8");

但是這一操作必須提前在filter中完成,在servlet中使用此方法已經不起作用了。filter的例子如下:

[java] view plain copy

import java.io.IOException;  

import javax.servlet.Filter;  

import javax.servlet.FilterChain;  

import javax.servlet.FilterConfig;  

import javax.servlet.ServletException;  

import javax.servlet.ServletRequest;  

import javax.servlet.ServletResponse;  

public class CharacterEncodingFilter implements Filter {  

private String encoding;  

public CharacterEncodingFilter() {  

encoding = null;  

}  

public void destroy() {  

encoding = null;  

}  

public void doFilter(ServletRequest request, ServletResponse response,  

FilterChain chain) throws IOException, ServletException {  

request.setCharacterEncoding(encoding);  

chain.doFilter(request, response);  

}  

public void init(FilterConfig filterConfig) throws ServletException {  

encoding = filterConfig.getInitParameter("encoding");  

if (encoding == null || "".equals(encoding)) {  

encoding = "UTF-8";  

}  

}  

}  

我們可以在web.xml使用這個filter。web.xml的相應配置如下:

[xhtml] view plain copy

<filter>  

<filter-name>Character Encoding Filter</filter-name>  

<filter-class>  

CharacterEncodingFilter  

</filter-class>  

<init-param>  

<param-name>encoding</param-name>  

<param-value>UTF-8</param-value>  

</init-param>  

</filter>  

<filter-mapping>  

<filter-name>Character Encoding Filter</filter-name>  

<url-pattern>/*</url-pattern>  

</filter-mapping>  

通過上述兩種方式的預處理,在servlet中取出的數據可以不必進行ISO-8859-1解碼而直接使用。

字元集的選擇

在處理application/x-www-form-urlencoded類型的數據過程中,需要注意的另一個問題是字元集的選擇問題。如上所述,不論是request-line還是request-body,其URLEncoding所使用的字元集都是當前網頁在瀏覽器上顯示時所使用的字元集。而這個信息又是HTTP伺服器端生成HTML網頁時,在HTTP響應中提供的。
當HTTP伺服器接收到一個HTTP請求時,伺服器總是需要向用戶端發送一個HTTP響應。HTTP響應數據與HTTP請求數據格式相同,同樣由以下幾個部分組成:

<response-line>
<headers>
<CRLF>
[<response-body><CRLF>]

下面描述的是請求一個HTML網頁數據時伺服器的響應信息:

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Content-Length: 265
Date: Thu, 17 Dec 2009 05:20:36 GMT

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>test</title>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>
[End]

其中headers的Content-Type指定了數據流的數據格式以及顯示用的字元集。這一指標可以通過以下幾種方式指定:
1. HTML網頁
在HTML網頁的<head></head>中存在多個<meta/>標簽,其中可以設置Content-Type。例如:

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

2. JSP網頁
JSP網頁中,除了<meta/>標簽之外,還需要在JSP網頁頭部設置如下代碼:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

3. Servlet類
如果要在Servlet類中通過response向用戶端傳送HTML數據,需要在傳送前指定Content-Type。代碼如下:

response.setContentType("text/html;charset=UTF-8");

通過上述三種方式,可以確保響應數據傳送到用戶端瀏覽器時,瀏覽器使用正確解碼方式和字元集顯示其內容。

結束語

總之,Content-Type是聯系用戶端與伺服器端的紐帶,通過這一指標,雙方得以對相關的數據進行正確的編碼與解碼。只要了解了Content-Type的作用以及使用方法,亂碼問題就會迎刃而解。

2、在WINDOWS 7系統的IE登錄FTP伺服器時,為什麼會變成亂碼,,求救

這類亂碼是由於在Windows注冊表中,關於字體部分配置不正常造成的,即使你用內碼翻譯軟體處理也不會消除這類亂碼。

出現碼的消除方法 :

方法一:找一台與你的Windows版本相同且顯示正常的機器,依下列步驟進行:
1.在正常機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器;
2.請你將游標定位到「HKEY_LOCAL_MACHINE\ system\CurrentControlSet\Control\Fontassoc」,然後選擇「注冊表」→「導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如ZT.REG)中;
3.把ZT.REG文件拷貝到你那顯示亂碼的機器上,方法是:在顯示亂碼的機器上運行「regedit」,打開注冊表編輯器,選擇「注冊表」→「導入注冊注冊表」,把ZT.REG文件導入注冊表中即可。

方法二:如果你找不到一台與你的Windows版本相同且顯示正常的機器,則需要手工恢復字體部分的注冊表項,其步驟是:
1.首先在顯示亂碼的機器上選擇「開始」→「運行」,在對話框中鍵入「regedit」,打開注冊表編輯器;
2.選擇「HKEY_LOCAL_MACHINE\System\ CurrentControlSet\Control\Fontassoc」,正常情況下,會有Associated DeaultFonts、Associated CharSet兩個文件夾,其正確的內容應是:
子目錄內容
Associated DefaultFonts
AssocSystemFont=「simsun.ttf」
FontPackageDecorative=「宋體」
FontPackageDontcare=「宋體」
FontPackageModern=「宋體」
FontPackageRoman=「宋體」
FontPackageScript=「宋體」
FontPackageSwiss=「宋體」

AssocSystemFont=「simsun.ttf」
FontPackage=「新宋體」
FontPackageDecorative=「新宋體」
FontPackageDontcare=「新宋體」
FontPackageModern=「新宋體」
FontPackageRoman=「新宋體」
FontPackageScript=「新宋體」
FontPackageSwiss=「新宋體」
3.當出現漢字亂碼時,上述兩個文件夾中的內容就會不完整,有的沒有Associated CharSet文件夾或其中的內容殘缺不全;有的Associated DefaulFonts下的內容殘缺。如果遇到這種情況怎麼辦呢?其實你只要打開注冊表編輯器,在「HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Fonassoc」下,根據以上的正確內容恢復即可。

3、用什麼工具解析FTP伺服器中的韓文拜託各位了 3Q

中日韓文夥伴 6.0 中日韓文夥伴(Windows 2000/XP專用)是一個全球通用的中文系統,安裝在任何語言的窗口中,用戶可以在不同的應用軟體內同時處理中文和其它文字。簡單易學的操作方法及介面讓復雜的中文輸入上手即會。這套軟體能轉換不同文件格式的內碼;超級內碼轉換器可將中文文檔現有內碼轉換為其它內碼。轉換工作可在 GB 碼 Big5 碼 Unicode、GBK 和 Big5+ 等內碼之間進行。用戶可以將 ANSI (非Unicode) 文檔的內碼轉換成 Unicode,使其能在 Unicode 兼容型軟體中讀寫。反之,您也可以把使用 Unicode 建立的文檔轉換成 GB 或 Big5 碼,以便能夠在 ANSI (非Unicode) 兼容型軟體中讀寫。 下載頁面:http://download.zol.com.cn/detail/3/29650.shtml

希望採納

4、如何修改windows內碼?

將默認語言設為繁體即可解決!

5、漢字的內碼

漢字亂碼解決方法
www.xyhhxx.com 發布者: seo 時間: 2005-09-12

我們在使用電腦時,經常會遇到亂碼:例如登上港台網站時會看到亂碼,打開E-mail時也會看到亂碼,更為嚴重的是原先顯示正常的Win9X/Win2K桌面、菜單中漢字一夜之間「面目全非」,本來顯示正常的各種應用程序(包括游戲)中漢字也成了亂碼!亂碼給我們帶來了太多的煩惱,告別亂碼是我們共同的願望!
一、漢字亂碼現象的分類
漢字亂碼現象大致可分成四類:網頁、文本、文檔和文件亂碼。第一類是由於港台的繁體中文大五碼(BIG5)與大陸簡體中文(GB2312)不通用造成的;第二類是Win9X/Win2K系統(菜單、桌面、提示框)顯示亂碼,這是Win9X/Win2K注冊表中有關字體的部分設置不當引起的;第三類是各種應用程序(包括游戲)本來顯示中文的地方出現亂碼,形成原因比較復雜,有第二類的亂碼原因,也可能是軟體用到的中文動態鏈接庫被英文動態鏈接庫覆蓋造成的;最後一類是郵件亂碼。
二、消除漢字亂碼
針對以上幾種亂碼現象,我們來分類介紹消除亂碼的方法。

(一)、網頁、文本和文檔文件亂碼的消除
網頁亂碼是瀏覽器(如IE等)對HTML網頁解釋時形成的。如果在網頁的代碼中有形如:〈HTML〉〈HEAD〉〈META CONTENT=「text/html;charset=ISO-8859-1」〉〈/HEAD〉……〈/HTML〉的語句,瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為「歐洲語系」。解決的辦法是將語種「ISO-8859-1」改為GB2312,如果是繁體網頁則改為BIG5。
另一種解決辦法是不修改網頁代碼,事先為瀏覽器安裝多語言支持包(例如在安裝IE時要安裝多語言支持包),這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選擇菜單欄下的「查看」/「編碼」/「自動選擇」/簡體中文(GB2312),如為繁體中文則選擇「查看」/「編碼」/「自動選擇」/繁體中文(BIG5),其它語言依此類推選擇相應的語系,這樣可消除網頁亂碼現象。
還有一種解決辦法是利用多內碼顯示平台來轉換內碼。常用多內碼顯示平台有:
「南極星」:可自動識別GB碼、BIG5碼,用簡體或繁體顯示,並能做到同屏顯示GB碼和BIG5碼,對日文、韓文亦能正確顯示。下載地址:http:// www.njstar.com
「四通利方」:支持了包括GB、BIG5、HZ、日韓編碼、UNICOD等17種漢字內碼,也開始支持預覽功能,並且增加了諸如「增刪空格」、「插入禁排空格」等小而有用的功能,實在是網友的好幫手。下載地址:http:// www.srsnet.com
「MagicWin 98」:可真正的同屏顯示不同內碼,即GB碼和BIG5碼兩者共存、都能正常顯示。它支持GB、HZ、BIG5、JIS、EUC、SJIS、KSC、UTF7和UTF8等格式;支持Netscape Communicator 4.X、Internet Explorer 和Office 等軟體;支持在多個窗口中同時查看不同內碼的文檔的超級多內碼顯示平台。下載地址:http:// www.itwin.com.my/magicwin
網頁無亂碼保存的方法是:用瀏覽器打開網頁時,在「查看」/「編碼」中選擇「自動選擇」,存檔時保存類型選「web頁」,編碼選擇「UNICOD」,這樣保存過的網頁再次打開時,在瀏覽器菜單「查看」、「編碼」中不管選擇簡體中文(GB2312)、簡體中文(HZ)還是UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會出現亂碼。
文本、文檔文件亂碼,一般是繁體中文顯示在簡體中文系統下或者相反情況造成的。只要把原本是繁體的內碼轉換為簡體內碼(或者相反),就可消除亂碼。
Word2000能勝任這類工作,例如要把繁體中文轉換為簡體中文,方法是:選擇要轉換內碼的文件,在彈出的對話框中(如圖1),選擇「其它編碼」中的「繁體中文(BIG5)」一項,打開此文件時就不會出現亂碼。無亂碼保存方法:在保存時選擇「文件」中的「另存為」,先存為「Word文檔,存檔後打開再存為純文本等其它格式;您也可以用Word2000的「中文簡繁轉換」工具實現無亂碼保存,方法是在菜單欄中選擇「工具/語言/中文簡繁轉換」,內碼轉換後再保存。
WPS2000也能轉換內碼,支持GB2312、BIG5、GBK等三種主要的漢字編碼,並可在輸出RTF、TXT、HTM格式文件時對內碼進行轉換。
除此之外,消除這類亂碼還可用內碼轉換工具,對BIG5(繁體中文)和GB2312(國標碼、簡體中文)進行相互轉換來實現。常用的內碼轉換工具有:
「颶風簡繁通」:中文自由軟體,純「綠色軟體」,不用安裝,把300多K的壓縮包解開到硬碟的任意一個目錄即可使用。軟體支持普通文本、剪貼板上內容、磁碟文件的BIG5→GB或GB→BIG5內碼轉換,速度很快。該軟體特有「網站轉換」功能:可在幾分鍾之內全自動的為您的網站生成一個BIG5碼的版本。當然,您什麼時候從港台地區抓個網站下來,也可以先來個BIG5→GB的轉換,然後輕輕鬆鬆慢慢欣賞。下載地址:http://renliang.yeah.net
「內碼轉換大師」:能夠以靈活的方式選取大批文件,同時進行轉換。選取的文件在轉換前後隨時可以直接查看其內容。轉換是直接在原文件上進行的,省去了選擇目標目錄、多次拷貝等繁瑣的操作。獨傢具備:對於HTML文件,能夠自動轉換其漢字字元集定義,使之在瀏覽器中瀏覽時自動按照轉換後的代碼集中顯示。目前支持GB2312以及BIG5兩種代碼集。下載地址:http://rchan.yeah.net
「華語通」:免費軟體,支持BIG5<->GB雙向轉換,支持文本、Web頁、RTF等格式,可批量轉換。下載地址:http://lanny.yeah.net
「TEXT ROBOT」:支持BIG5<->GB、BIG5→GBK、BIG5→GBK簡體、GBK繁體→GBK簡體等多內碼轉換,可將文本格式轉換為Web頁,能進行批量內碼轉換。下載地址:http://denvor.yeah.net
「兩岸通漢字內碼轉換器」:免費軟體,支持GB<->BIG5、BIG5<->GB的雙向轉換,可以批量轉換,還可直接轉換剪貼板內的文本。在轉換文件之前,允許你先通過預覽窗口實現預覽轉換結果。下載地址:http:// www.njstar.com

(二)、Win9X/Win2K系統亂碼的消除
這類亂碼是由於注冊表中關於字體部分配置不正常造成的,即使您用內碼翻譯軟體如四通利方、南極星、Magic Win98、兩岸通等處理也不會消除。解決辦法是:恢復注冊表中關於字體部分設置。
如有一台Win9X/Win2K版本相同且顯示正常的機器,則可依下列步驟進行恢復:
1.在正常機器上選擇「開始」/「運行」,在對話框中鍵入「REGEDIT」,打開注冊表編輯器;
2.游標定位到「HKEY_LOCAL_MACHINE\ SYSTEM\CURRENT CONTROL SET\CONTROL\ FONTASSOC」,選擇「注冊表/導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如LI.REG)中(如圖2);
3.把LI.REG文件Copy到顯示亂碼的機器上,在顯示亂碼機器上運行REGEDIT,選擇「注冊注冊表」/「導入注冊注冊表」,把LI.REG文件導入注冊表中。
如沒有Win9X/Win2K版本相同且顯示正常的機器,則需要您手工恢復字體部分注冊表項,按以下步驟:
1.在亂碼機器上打開REGEDIT(REGEDIT.EXE在WINDOWS目錄下);
2.找到「HKEY_LOCAL_MACHINE\SYSTEM\ CURRENT CONTROL SET\CONTROL\FONTASSOC」,正常情況下,會有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET兩個文件夾,其正確的內容為:
子目錄內容
中文Win98
中文Win98(OEM版)
中文Win2K
AASOCIATED CHARSET
ANSI(00)=「yes」
GB2312(86)=「yes」
DEN(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
GB2312(86)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ASSOCIATED DEFAULT
FONTS
AssocSystemFont=「simsun.ttf」
FontPackageDecorative=「宋體」
FontPackageDontcare=「宋體」
FontPackageModern=「宋體」
FontPackageRoman=「宋體」
FontPackageScript=「宋體」
FontPackageSwiss=「宋體」
同左欄
AssocSystemFont=「simsun.ttf」
FontPackage=「新宋體」
FontPackageDecorative=「新宋體」
FontPackageDontcare=「新宋體」
FontPackageModern=「新宋體」
FontPackageRoman=「新宋體」
FontPackageScript=「新宋體」
FontPackageSwiss=「新宋體」
3.當出現漢字亂碼時,上述兩個文件夾中內容就會不完整,有的沒有ASSOCIATED CHARSET文件夾或其中內容殘缺不全;有的ASSOCIATED DEFAULTFONTS下內容殘缺。只要用REGEDIT在「HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\ CONTROL\FONTASSOC」下,根據以上正確內容恢復即可。

(三)、應用程序(包括游戲)亂碼的消除
中文軟體菜單等顯示界面上出現亂碼,可能是由於Windows注冊表中關於字體設置的信息不正確地改變而造成的,這時候可以用上述第2點介紹的辦法去解決。
如果用上法解決不了,那就是因為軟體的中文鏈接庫被英文鏈接庫覆蓋而引起的,這種現象經常發生在用微軟開發工具例如VB、VC開發的中文軟體上,這類軟體中,菜單等顯示界面上的漢字都是受一個動態鏈接庫(DLL文件)控制,而軟體的這個動態鏈接庫一般安裝在Windows的System目錄下,如果以後安裝了某個英文軟體也使用同名的動態鏈接庫,則英文軟體的動態鏈接庫就會覆蓋WINDOWS\SYSTEM下的中文軟體的動態鏈接庫,這樣,運行中文軟體時就會調用英文的動態鏈接庫,因此出現亂碼。解決辦法是重新安裝中文軟體,恢復中文動態鏈接庫即可。

(四)、郵件亂碼的消除
1.郵件亂碼原因及其排除
郵件亂碼的形成原因很多,主要有以下幾個方面:
(1)郵件伺服器不支持8位(非ASCII碼格式)
傳輸郵件傳輸機制或郵件編碼的不同,可能造成郵件伺服器不支持8位(非ASCII碼格式)傳輸而形成郵件亂碼。例如直接發送中文或二進制等非ASCII碼格式的郵件(如中文雙位元組文件、圖片文件.jpg、可執行文件.exe或壓縮文件.zip等二進制文件)時,郵件伺服器有可能無法處理,便把信件中每個字元的第8位都過濾掉,從而造成郵件信息的失真或損壞,在收到郵件時就是一堆亂碼。
對策:在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件後,可以再轉換為8位的格式,這樣就可避免亂碼。
(2)收發端使用的E-mail軟體和設置不同
一般E-mail軟體的「附件」功能都可以自動對信件先進行編碼,然後送出。這樣只要收信人使用的E-mail軟體(如Outlook、Netscape E-mail等)能區別信件的編碼方式,就可以自動將信件解碼。然而由於收發件人所用的E-mail軟體默認配置不同或收發件人自己定製的一些選項不同,所以在收到編碼的信件後,系統不一定能識別出信件所用的編碼方法,自然無法自動解碼,這樣就會出現亂碼。
對策:可以用Winzip+IE來解碼,方法是:把亂碼郵件的內容,拷貝到剪貼板中,然後將其粘貼到記事本中,存為文本文件(例如LI.txt),再將其後綴改為.uue(改為LI.uue),點擊此文件,會啟動Winzip,然後啟動IE,把Winzip中的001.txt文件拖到IE窗口中,就會顯示郵件原來的內容,而不會看到亂碼。
也可以根據郵件中的關鍵字元判斷編碼方法,選取合適的解碼軟體進行解碼。
郵件的編碼方式主要有:UUENCODE、Base64 encode、QP-encode、BINHEX等。
UUENCODE:這是UNIX環境下使用的編碼方式,目前已經很少用,大體格式為:
begin 644 kk.zip M1G)O;2!I;&EN+F)B3T!C(VEE+FYC=』4N961U+G1W(%=E9"!.;W8@(#8@,3(ZM,SDZ,C4@,3DY-@I296-E:79E9#H@9G)O;2!F;&%B;6%I;"YF;&%B+F9U:FET……
end
特徵:亂碼前面含有「begin xxx」,後面是編碼前的原始文件名(如kk.zip),接著是已經過編碼的信件內容(如上述的亂碼部分)最後一行為「end」。
解碼辦法:可用BECKY!EUDORA等E-mail軟體,選擇編碼中相應的選項就可解碼,也可以在E-mail軟體中保存亂碼郵件,存為後綴為「.UUE」格式的文件,然後用Winzip解碼展開。解碼後就會消除亂碼。
MIME/BASE64 encode:該編碼方式將3個位元組(8位)用4個位元組(6位)表示,由於編碼後的內容是6位的,因此可避免第8位被截掉,大體格式為:
MIME-Version:1.0
Content-Type:text/plain; charset="us-ascii"
Content-Transfer-Encoding:base64
Status:R
+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
特徵:亂碼前一般有如下幾部分「信頭」:Content-Type(內容類型)、charset(字元集)和Content-Transfer-Encoding(內容傳輸亂碼方式)。
解碼辦法:用E-mail軟體,選擇編碼中Base64 選項就可解碼,解碼後會消除亂碼。
QpencodeQP:全稱「Quoted-Printable Content-Transfer-Encoding」。因為這種格式郵件的內容都是ASCII字元集中可以列印的字元,所以名稱中含有Printable。大體格式為:
=A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W
=B1o......
=E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A......
特徵:內容通常有很多等號「=」,因此不需要看「信頭」也可以判斷是否為QP編碼。
解碼辦法:把郵件中類似A1A=B1z=A6n...的部分編碼全部復制下來,貼到一個新的純文本文件中,然後在文件頭部加入Quoted-Pintable格式的文件頭:
Contenet-Type:text/plain;Charset="GB2312"
Content-Transfer-Encoding;Quoted-Pintable
然後以「EML」為後綴保存文件,用資源管理器雙擊打開文件即可顯示正確的內容。如果還有部分漢字亂碼,可以用Winzip對存檔後的EML文件進行解壓,即可看到正確的內容。
BINHEX:這種編碼方式大體格式為:
(This file must be converted with Binhex4.0)
ssTqq6vdCx<BR>
oz6XOIE……
解碼辦法:用E-mail軟體對它解碼;也可在E-mail軟體中保存亂碼郵件,存為後綴為「.HQX」格式的文件,然後用Winzip解碼展開。
解碼後會消除亂碼。
UTIF-7/UTIF-8:它們是UNICODE的兩種轉換碼。
UTIF-7編碼方式大體格式為:
+SGmhQbF/6pm6hSafapmK69L/j0pFexb6q+sXqsT6Skp. OWrSKXzsN3DRLFNrmGhQQ0Kq1-sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-7"
Content-Transfer-Encoding:7bit
插入後與字元留一空行,將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
UTIF-8
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-8"
Content-Transfer-Encoding:8bit
將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
(3)操作系統語種不同
對於中文電子郵件,如果收信方所用的操作系統是英文環境而且沒有外掛中文系統或未切換為中文(如四通利方或南極星等)編碼方式,也會無法看到中文只見亂碼。所有的雙位元組字元(如中文簡/繁體的GB和BIG5碼及日文的JIS、EUC和朝鮮文的 KSC碼等)在非本語種操作系統下都會出現亂碼。同樣在中文簡體的GB碼環境下看其它雙位元組字元時也只能看到亂碼。
對策:安裝多語言支持包或使用多內碼顯示平台(如四通利方或南極星等),對收到的郵件,根據其使用的語種切換到相應的編碼方式即可消除亂碼。
2.為了避免別人收到亂碼,發信方應注意:
(1) E-mail軟體中的正確設置
使用英文E-mail軟體應設置成:
文字設定Default CHARSET:ISO 8859-1
(Latin1)
編碼方式Encoding:Quoted-Printable,不可選擇7位(因為7位不支持中文)
字碼頁Code Page(可選):936或HZ-GB-2312,
以支持整字識別郵件格式:MIME
字體:宋體
中文E-mail軟體應設置成:
文字設定Default CHARSET:簡體中文GB2312
編碼方式Encoding:Quoted-Printable郵件格式:MIME
字體:宋體
Outlook Express中應把「簡體中文(GB2312)作為默認的郵件使用語言,選擇「國際設置」/為接收的所有郵件使用默認的編碼。
(2)發送前將郵件按7位格式重新編碼
在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件之後,可以再轉換為8位的格式,這樣就可以閱讀了。
在郵件客戶端軟體中的書寫(撰寫)選項中,設定默認自動為7位編碼。
(3)轉換成合適的內碼
在E-mail軟體的書寫(撰寫)選項中,設定默認自動為7位編碼。對用漢字系統編輯的中文郵件在發送前,最好在固定的簽字欄中註明自己所使用的漢字碼標准(如:GB2312、中文HZ、GBK);港澳台及東南亞地區郵件作者在使用BIG5碼撰寫完郵件、向內地發送前要轉換成上述三種簡體國標碼中的一種形式並在簽字欄中註明。如不轉換則可能無法閱讀,因為國內用戶使用的郵件系統有很多不支持BIG5碼。
(4)發送重要信息時先發測試信
發送重要信息時,為了確認是否無須編碼即可發送正文,應該先發送測試信。而且還應確定收件人能否對附件文件進行解碼。如果發送已經編碼的郵件,則最好添加足夠的「信頭」信息,以便收件人知道所需的解碼方法。建議對UUENCODE/UUDeview編碼方式用UUENCODING作信頭,對Mpack編碼方式用Base64 encoding作信頭。
(5)盡量利用「附件」功能發送文件
幾乎所有的郵件軟體,如Netscape、The Bat!、 Becky! 等郵件系統附加這類非標准 ASCII碼格式的文件時,附加文件通常可以自動進行「Base64」方式編碼(僅對附件部分進行編碼)。在用「附件」方式發送郵件之前,無需進行編碼;否則適得其反。因為郵件軟體能夠自動成功解碼這類「附加」文件,因此在發送中文類郵件時應該首選這種方法。
如果無法以附件方式發送文件,則必須在正文中發送中文或二進制文件如果發/收件人之間遠隔萬里,則傳送過程中,第八位將可能被截掉。這時最好先在正文中用中文給收件人發一封測試信,並了解對方能否正確收到郵件正文。如果第八位被截掉,則收件人將會看到一些亂碼,而不是上述的uu/b64/Qp等格式,而且這種信件幾乎不可恢復。
對策:在Netscape、Eudora或Pegasus Mail等你所使用的郵件系統中,選擇其首選項或選項配置中的「Quoted Printalbe」或「MIME encoding」。
(6)選擇優秀的客戶端郵件軟體
選擇優秀E-mail收發軟體可有效解決郵件亂碼。
3.為排除亂碼,收信方應注意:
查找郵件:簽字欄或正文中有無指明本郵件所使用漢字標准碼類別的英文字元;在「查看(V)」下拉菜單中選中「語言」,隨後出現的菜單中會包括本系統所能支持的全部漢字標准,在其中單擊郵件中所指明的一種。如果收到的郵件中沒有指明其所使用的漢字標准,則只可按順序單擊,直到郵件正文顯示正確為止(數個漢字標准中必有一個前面有「.」標記,此即您編輯器所用的漢字標准)。若使用的是Netscape,可在Option菜單的Document Encode中選擇相應的項目。
4.在非中文平台上中文郵件不出現亂碼方法
當對方沒有中文平台而打開您發的中文郵件時,就會出現亂碼。解決辦法有兩種:
(1)用E-mail AID之類的工具
UCWIN GOLD 1.0附帶的工具E-mail AID可把文本文件轉換為AID格式文件,大小隻比原TXT文件增加幾K。寫好中文郵件後,用文本格式存檔,然後用E-mail AID以AID格式保存,最後把此文件連同E-mail AID一起作為附件插在信中。對方收到信後,只需運行E-mail AID打開AID格式文件即可看到漢字,不管對方在何語言平台下,都不會出現亂碼。
(2)把中文郵件以圖形格式保存
用畫筆等繪圖軟體書寫中文郵件,在圖片中輸入文字,用默認的BMP格式保存,將屬性置為黑白模式(以減少BMP圖片體積),然後用Winzip把它壓縮成ZIP格式,作為附件在郵件中發送,這樣不管對方在何語言平台下,都不會出現亂碼。這種方法的缺點是生成的BMP中文郵件體積太大。
參考資料:http://www.xyhhxx.com/news/IT/20050912213229.htm

6、C++菜鳥問題 整數內碼

for(i=0;n==0;i++) //為什麼這里改成i<32 就通過了 n==0為什麼不行?
for(i=0;i<32;i++)這個的意思是只從i=0開始執行循環,當i<32時執行該循環,i>32或者i=32時終止循環,每執行一次循環i的值加1

7、在線轉換內碼

php 裡面可以用 ICONV 組件 ...

asp 我記得也有一個 ... 名字記不得了 ...

8、VC 英文內碼下中文字元串顯示亂碼

MultiByteToWideChar()
WideCharToMultiByte()

這兩個函數可以實現對於UNICODE 碼和ASCII友的轉換

將客戶端的語言改為英文,則內存中為「c7 00 f8 00 d3 00 f2 00」 , 這個是UNICODE碼,只要調用了WideCharToMultiByte函數(具體的你查下MSDN就知道了),這樣,就不會是亂碼了。

補充:
關於你的問題,我到網路上找了一下,問題的答案可能是:
1 首先機器上要安裝日文的字體
2 直接使用UNICODE表示日文
具體的我也不太清楚。 好像中日韓的使用的是同一UNICODE字元集,我也沒有用過日語。。。

9、檢查伺服器端字元集的設置

1.1 什麼是字元集?
字元集是字元(包含字母,數字,符號和非列印字元等)以及所指定的內碼所組成的特定的集合。通常一個字元集包含一個字母表中的字元,例如拉丁字母表被使用在英語語言中,那麼如果要使用拉丁字元,就要配置使用英語語言集中的特定的字元集合――拉丁語言字元集。這里為什麼特指了是英語語言集呢?因為字元集是基於某種操作系統平台和某種語言集支持的。語言集的集合被稱為語言組,它可能包含一種或多種語言。本地字元集是基於特定語言組中所包含的一種或多種語言支持的,在特定操作系統平台上編碼的集合。

在Client/Server系統中,支持多語言的數據處理,但是所有的語言必須屬於同一個語言組。例如,從下表可以看出,如果伺服器中的數據用組1中的字元集,則同一資料庫中可以有法語,德語,英語以及該組中的其它語言。而在這個資料庫中就不能同時存儲日語,法語了。

10、為什麼我打開的網頁是亂碼,內碼轉換器我也安裝了,編碼也沒問題

看看下邊的會對你有幫助。你的內碼轉換器可能無效。
漢字亂碼解決方法
www.xyhhxx.com 發布者: seo 時間: 2005-09-12

我們在使用電腦時,經常會遇到亂碼:例如登上港台網站時會看到亂碼,打開E-mail時也會看到亂碼,更為嚴重的是原先顯示正常的Win9X/Win2K桌面、菜單中漢字一夜之間「面目全非」,本來顯示正常的各種應用程序(包括游戲)中漢字也成了亂碼!亂碼給我們帶來了太多的煩惱,告別亂碼是我們共同的願望!
一、漢字亂碼現象的分類
漢字亂碼現象大致可分成四類:網頁、文本、文檔和文件亂碼。第一類是由於港台的繁體中文大五碼(BIG5)與大陸簡體中文(GB2312)不通用造成的;第二類是Win9X/Win2K系統(菜單、桌面、提示框)顯示亂碼,這是Win9X/Win2K注冊表中有關字體的部分設置不當引起的;第三類是各種應用程序(包括游戲)本來顯示中文的地方出現亂碼,形成原因比較復雜,有第二類的亂碼原因,也可能是軟體用到的中文動態鏈接庫被英文動態鏈接庫覆蓋造成的;最後一類是郵件亂碼。
二、消除漢字亂碼
針對以上幾種亂碼現象,我們來分類介紹消除亂碼的方法。

(一)、網頁、文本和文檔文件亂碼的消除
網頁亂碼是瀏覽器(如IE等)對HTML網頁解釋時形成的。如果在網頁的代碼中有形如:〈HTML〉〈HEAD〉〈META CONTENT=「text/html;charset=ISO-8859-1」〉〈/HEAD〉……〈/HTML〉的語句,瀏覽器在顯示此頁時,就會出現亂碼。因為瀏覽器會將此頁語種辨認為「歐洲語系」。解決的辦法是將語種「ISO-8859-1」改為GB2312,如果是繁體網頁則改為BIG5。
另一種解決辦法是不修改網頁代碼,事先為瀏覽器安裝多語言支持包(例如在安裝IE時要安裝多語言支持包),這樣在瀏覽網頁出現亂碼時,就可以在瀏覽器中選擇菜單欄下的「查看」/「編碼」/「自動選擇」/簡體中文(GB2312),如為繁體中文則選擇「查看」/「編碼」/「自動選擇」/繁體中文(BIG5),其它語言依此類推選擇相應的語系,這樣可消除網頁亂碼現象。
還有一種解決辦法是利用多內碼顯示平台來轉換內碼。常用多內碼顯示平台有:
「南極星」:可自動識別GB碼、BIG5碼,用簡體或繁體顯示,並能做到同屏顯示GB碼和BIG5碼,對日文、韓文亦能正確顯示。下載地址:http:// www.njstar.com
「四通利方」:支持了包括GB、BIG5、HZ、日韓編碼、UNICOD等17種漢字內碼,也開始支持預覽功能,並且增加了諸如「增刪空格」、「插入禁排空格」等小而有用的功能,實在是網友的好幫手。下載地址:http:// www.srsnet.com
「MagicWin 98」:可真正的同屏顯示不同內碼,即GB碼和BIG5碼兩者共存、都能正常顯示。它支持GB、HZ、BIG5、JIS、EUC、SJIS、KSC、UTF7和UTF8等格式;支持Netscape Communicator 4.X、Internet Explorer 和Office 等軟體;支持在多個窗口中同時查看不同內碼的文檔的超級多內碼顯示平台。下載地址:http:// www.itwin.com.my/magicwin
網頁無亂碼保存的方法是:用瀏覽器打開網頁時,在「查看」/「編碼」中選擇「自動選擇」,存檔時保存類型選「web頁」,編碼選擇「UNICOD」,這樣保存過的網頁再次打開時,在瀏覽器菜單「查看」、「編碼」中不管選擇簡體中文(GB2312)、簡體中文(HZ)還是UNICODE(UTF-8)或繁體中文(BIG5),最終顯示都不會出現亂碼。
文本、文檔文件亂碼,一般是繁體中文顯示在簡體中文系統下或者相反情況造成的。只要把原本是繁體的內碼轉換為簡體內碼(或者相反),就可消除亂碼。
Word2000能勝任這類工作,例如要把繁體中文轉換為簡體中文,方法是:選擇要轉換內碼的文件,在彈出的對話框中(如圖1),選擇「其它編碼」中的「繁體中文(BIG5)」一項,打開此文件時就不會出現亂碼。無亂碼保存方法:在保存時選擇「文件」中的「另存為」,先存為「Word文檔,存檔後打開再存為純文本等其它格式;您也可以用Word2000的「中文簡繁轉換」工具實現無亂碼保存,方法是在菜單欄中選擇「工具/語言/中文簡繁轉換」,內碼轉換後再保存。
WPS2000也能轉換內碼,支持GB2312、BIG5、GBK等三種主要的漢字編碼,並可在輸出RTF、TXT、HTM格式文件時對內碼進行轉換。
除此之外,消除這類亂碼還可用內碼轉換工具,對BIG5(繁體中文)和GB2312(國標碼、簡體中文)進行相互轉換來實現。常用的內碼轉換工具有:
「颶風簡繁通」:中文自由軟體,純「綠色軟體」,不用安裝,把300多K的壓縮包解開到硬碟的任意一個目錄即可使用。軟體支持普通文本、剪貼板上內容、磁碟文件的BIG5→GB或GB→BIG5內碼轉換,速度很快。該軟體特有「網站轉換」功能:可在幾分鍾之內全自動的為您的網站生成一個BIG5碼的版本。當然,您什麼時候從港台地區抓個網站下來,也可以先來個BIG5→GB的轉換,然後輕輕鬆鬆慢慢欣賞。下載地址:http://renliang.yeah.net
「內碼轉換大師」:能夠以靈活的方式選取大批文件,同時進行轉換。選取的文件在轉換前後隨時可以直接查看其內容。轉換是直接在原文件上進行的,省去了選擇目標目錄、多次拷貝等繁瑣的操作。獨傢具備:對於HTML文件,能夠自動轉換其漢字字元集定義,使之在瀏覽器中瀏覽時自動按照轉換後的代碼集中顯示。目前支持GB2312以及BIG5兩種代碼集。下載地址:http://rchan.yeah.net
「華語通」:免費軟體,支持BIG5<->GB雙向轉換,支持文本、Web頁、RTF等格式,可批量轉換。下載地址:http://lanny.yeah.net
「TEXT ROBOT」:支持BIG5<->GB、BIG5→GBK、BIG5→GBK簡體、GBK繁體→GBK簡體等多內碼轉換,可將文本格式轉換為Web頁,能進行批量內碼轉換。下載地址:http://denvor.yeah.net
「兩岸通漢字內碼轉換器」:免費軟體,支持GB<->BIG5、BIG5<->GB的雙向轉換,可以批量轉換,還可直接轉換剪貼板內的文本。在轉換文件之前,允許你先通過預覽窗口實現預覽轉換結果。下載地址:http:// www.njstar.com

(二)、Win9X/Win2K系統亂碼的消除
這類亂碼是由於注冊表中關於字體部分配置不正常造成的,即使您用內碼翻譯軟體如四通利方、南極星、Magic Win98、兩岸通等處理也不會消除。解決辦法是:恢復注冊表中關於字體部分設置。
如有一台Win9X/Win2K版本相同且顯示正常的機器,則可依下列步驟進行恢復:
1.在正常機器上選擇「開始」/「運行」,在對話框中鍵入「REGEDIT」,打開注冊表編輯器;
2.游標定位到「HKEY_LOCAL_MACHINE\ SYSTEM\CURRENT CONTROL SET\CONTROL\ FONTASSOC」,選擇「注冊表/導出注冊表文件」,再選擇「分支」,導出該分支注冊表信息到文件(如LI.REG)中(如圖2);
3.把LI.REG文件Copy到顯示亂碼的機器上,在顯示亂碼機器上運行REGEDIT,選擇「注冊注冊表」/「導入注冊注冊表」,把LI.REG文件導入注冊表中。
如沒有Win9X/Win2K版本相同且顯示正常的機器,則需要您手工恢復字體部分注冊表項,按以下步驟:
1.在亂碼機器上打開REGEDIT(REGEDIT.EXE在WINDOWS目錄下);
2.找到「HKEY_LOCAL_MACHINE\SYSTEM\ CURRENT CONTROL SET\CONTROL\FONTASSOC」,正常情況下,會有ASSOCIATED DEFAULTFONTS、ASSOCIATED CHARSET兩個文件夾,其正確的內容為:
子目錄內容
中文Win98
中文Win98(OEM版)
中文Win2K
AASOCIATED CHARSET
ANSI(00)=「yes」
GB2312(86)=「yes」
DEN(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
GB2312(86)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ANSI(00)=「yes」
OEM(FF)=「yes」
SYMBOL(02)=「no」
ASSOCIATED DEFAULT
FONTS
AssocSystemFont=「simsun.ttf」
FontPackageDecorative=「宋體」
FontPackageDontcare=「宋體」
FontPackageModern=「宋體」
FontPackageRoman=「宋體」
FontPackageScript=「宋體」
FontPackageSwiss=「宋體」
同左欄
AssocSystemFont=「simsun.ttf」
FontPackage=「新宋體」
FontPackageDecorative=「新宋體」
FontPackageDontcare=「新宋體」
FontPackageModern=「新宋體」
FontPackageRoman=「新宋體」
FontPackageScript=「新宋體」
FontPackageSwiss=「新宋體」
3.當出現漢字亂碼時,上述兩個文件夾中內容就會不完整,有的沒有ASSOCIATED CHARSET文件夾或其中內容殘缺不全;有的ASSOCIATED DEFAULTFONTS下內容殘缺。只要用REGEDIT在「HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\ CONTROL\FONTASSOC」下,根據以上正確內容恢復即可。

(三)、應用程序(包括游戲)亂碼的消除
中文軟體菜單等顯示界面上出現亂碼,可能是由於Windows注冊表中關於字體設置的信息不正確地改變而造成的,這時候可以用上述第2點介紹的辦法去解決。
如果用上法解決不了,那就是因為軟體的中文鏈接庫被英文鏈接庫覆蓋而引起的,這種現象經常發生在用微軟開發工具例如VB、VC開發的中文軟體上,這類軟體中,菜單等顯示界面上的漢字都是受一個動態鏈接庫(DLL文件)控制,而軟體的這個動態鏈接庫一般安裝在Windows的System目錄下,如果以後安裝了某個英文軟體也使用同名的動態鏈接庫,則英文軟體的動態鏈接庫就會覆蓋WINDOWS\SYSTEM下的中文軟體的動態鏈接庫,這樣,運行中文軟體時就會調用英文的動態鏈接庫,因此出現亂碼。解決辦法是重新安裝中文軟體,恢復中文動態鏈接庫即可。

(四)、郵件亂碼的消除
1.郵件亂碼原因及其排除
郵件亂碼的形成原因很多,主要有以下幾個方面:
(1)郵件伺服器不支持8位(非ASCII碼格式)
傳輸郵件傳輸機制或郵件編碼的不同,可能造成郵件伺服器不支持8位(非ASCII碼格式)傳輸而形成郵件亂碼。例如直接發送中文或二進制等非ASCII碼格式的郵件(如中文雙位元組文件、圖片文件.jpg、可執行文件.exe或壓縮文件.zip等二進制文件)時,郵件伺服器有可能無法處理,便把信件中每個字元的第8位都過濾掉,從而造成郵件信息的失真或損壞,在收到郵件時就是一堆亂碼。
對策:在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件後,可以再轉換為8位的格式,這樣就可避免亂碼。
(2)收發端使用的E-mail軟體和設置不同
一般E-mail軟體的「附件」功能都可以自動對信件先進行編碼,然後送出。這樣只要收信人使用的E-mail軟體(如Outlook、Netscape E-mail等)能區別信件的編碼方式,就可以自動將信件解碼。然而由於收發件人所用的E-mail軟體默認配置不同或收發件人自己定製的一些選項不同,所以在收到編碼的信件後,系統不一定能識別出信件所用的編碼方法,自然無法自動解碼,這樣就會出現亂碼。
對策:可以用Winzip+IE來解碼,方法是:把亂碼郵件的內容,拷貝到剪貼板中,然後將其粘貼到記事本中,存為文本文件(例如LI.txt),再將其後綴改為.uue(改為LI.uue),點擊此文件,會啟動Winzip,然後啟動IE,把Winzip中的001.txt文件拖到IE窗口中,就會顯示郵件原來的內容,而不會看到亂碼。
也可以根據郵件中的關鍵字元判斷編碼方法,選取合適的解碼軟體進行解碼。
郵件的編碼方式主要有:UUENCODE、Base64 encode、QP-encode、BINHEX等。
UUENCODE:這是UNIX環境下使用的編碼方式,目前已經很少用,大體格式為:
begin 644 kk.zip M1G)O;2!I;&EN+F)B3T!C(VEE+FYC=』4N961U+G1W(%=E9"!.;W8@(#8@,3(ZM,SDZ,C4@,3DY-@I296-E:79E9#H@9G)O;2!F;&%B;6%I;"YF;&%B+F9U:FET……
end
特徵:亂碼前面含有「begin xxx」,後面是編碼前的原始文件名(如kk.zip),接著是已經過編碼的信件內容(如上述的亂碼部分)最後一行為「end」。
解碼辦法:可用BECKY!EUDORA等E-mail軟體,選擇編碼中相應的選項就可解碼,也可以在E-mail軟體中保存亂碼郵件,存為後綴為「.UUE」格式的文件,然後用Winzip解碼展開。解碼後就會消除亂碼。
MIME/BASE64 encode:該編碼方式將3個位元組(8位)用4個位元組(6位)表示,由於編碼後的內容是6位的,因此可避免第8位被截掉,大體格式為:
MIME-Version:1.0
Content-Type:text/plain; charset="us-ascii"
Content-Transfer-Encoding:base64
Status:R
+sXqsT6Skp OWrSKXzsN3DRLFNrmGhQQ0Kq1+sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
特徵:亂碼前一般有如下幾部分「信頭」:Content-Type(內容類型)、charset(字元集)和Content-Transfer-Encoding(內容傳輸亂碼方式)。
解碼辦法:用E-mail軟體,選擇編碼中Base64 選項就可解碼,解碼後會消除亂碼。
QpencodeQP:全稱「Quoted-Printable Content-Transfer-Encoding」。因為這種格式郵件的內容都是ASCII字元集中可以列印的字元,所以名稱中含有Printable。大體格式為:
=A1A=B1z=A6n=A1I=A7=DA=A6b=BA=F4=B8=F4=A4W
=B1o......
=E5==ABH=A5=F3=B0=DD=C3D=B1M=Aea=A1A......
特徵:內容通常有很多等號「=」,因此不需要看「信頭」也可以判斷是否為QP編碼。
解碼辦法:把郵件中類似A1A=B1z=A6n...的部分編碼全部復制下來,貼到一個新的純文本文件中,然後在文件頭部加入Quoted-Pintable格式的文件頭:
Contenet-Type:text/plain;Charset="GB2312"
Content-Transfer-Encoding;Quoted-Pintable
然後以「EML」為後綴保存文件,用資源管理器雙擊打開文件即可顯示正確的內容。如果還有部分漢字亂碼,可以用Winzip對存檔後的EML文件進行解壓,即可看到正確的內容。
BINHEX:這種編碼方式大體格式為:
(This file must be converted with Binhex4.0)
ssTqq6vdCx<BR>
oz6XOIE……
解碼辦法:用E-mail軟體對它解碼;也可在E-mail軟體中保存亂碼郵件,存為後綴為「.HQX」格式的文件,然後用Winzip解碼展開。
解碼後會消除亂碼。
UTIF-7/UTIF-8:它們是UNICODE的兩種轉換碼。
UTIF-7編碼方式大體格式為:
+SGmhQbF/6pm6hSafapmK69L/j0pFexb6q+sXqsT6Skp. OWrSKXzsN3DRLFNrmGhQQ0Kq1-sTqq6vdCx<BR>0LF6tFit07Ddw0ShRw0KD QqtuqX9p2m2RLF6p9qoz6XOIE 1Py3Jvc29mdCuiBJbnRlcm5ldCBN……
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-7"
Content-Transfer-Encoding:7bit
插入後與字元留一空行,將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
UTIF-8
解碼辦法:在原E-mail頭加入以下信息:
MIME-Version:1.0
Content-Type:text/plain; charset="utf-8"
Content-Transfer-Encoding:8bit
將郵件存為「EML」後綴,然後用Outlook即可解碼,消除亂碼。
(3)操作系統語種不同
對於中文電子郵件,如果收信方所用的操作系統是英文環境而且沒有外掛中文系統或未切換為中文(如四通利方或南極星等)編碼方式,也會無法看到中文只見亂碼。所有的雙位元組字元(如中文簡/繁體的GB和BIG5碼及日文的JIS、EUC和朝鮮文的 KSC碼等)在非本語種操作系統下都會出現亂碼。同樣在中文簡體的GB碼環境下看其它雙位元組字元時也只能看到亂碼。
對策:安裝多語言支持包或使用多內碼顯示平台(如四通利方或南極星等),對收到的郵件,根據其使用的語種切換到相應的編碼方式即可消除亂碼。
2.為了避免別人收到亂碼,發信方應注意:
(1) E-mail軟體中的正確設置
使用英文E-mail軟體應設置成:
文字設定Default CHARSET:ISO 8859-1
(Latin1)
編碼方式Encoding:Quoted-Printable,不可選擇7位(因為7位不支持中文)
字碼頁Code Page(可選):936或HZ-GB-2312,
以支持整字識別郵件格式:MIME
字體:宋體
中文E-mail軟體應設置成:
文字設定Default CHARSET:簡體中文GB2312
編碼方式Encoding:Quoted-Printable郵件格式:MIME
字體:宋體
Outlook Express中應把「簡體中文(GB2312)作為默認的郵件使用語言,選擇「國際設置」/為接收的所有郵件使用默認的編碼。
(2)發送前將郵件按7位格式重新編碼
在發送8位格式的文本文件時,必須事先進行編碼,將文件轉換為7位ASCII碼或更少位數的格式,然後才能保證文件的正確傳送。收件人收到7位或更少位格式的郵件之後,可以再轉換為8位的格式,這樣就可以閱讀了。
在郵件客戶端軟體中的書寫(撰寫)選項中,設定默認自動為7位編碼。
(3)轉換成合適的內碼
在E-mail軟體的書寫(撰寫)選項中,設定默認自動為7位編碼。對用漢字系統編輯的中文郵件在發送前,最好在固定的簽字欄中註明自己所使用的漢字碼標准(如:GB2312、中文HZ、GBK);港澳台及東南亞地區郵件作者在使用BIG5碼撰寫完郵件、向內地發送前要轉換成上述三種簡體國標碼中的一種形式並在簽字欄中註明。如不轉換則可能無法閱讀,因為國內用戶使用的郵件系統有很多不支持BIG5碼。
(4)發送重要信息時先發測試信
發送重要信息時,為了確認是否無須編碼即可發送正文,應該先發送測試信。而且還應確定收件人能否對附件文件進行解碼。如果發送已經編碼的郵件,則最好添加足夠的「信頭」信息,以便收件人知道所需的解碼方法。建議對UUENCODE/UUDeview編碼方式用UUENCODING作信頭,對Mpack編碼方式用Base64 encoding作信頭。
(5)盡量利用「附件」功能發送文件
幾乎所有的郵件軟體,如Netscape、The Bat!、 Becky! 等郵件系統附加這類非標准 ASCII碼格式的文件時,附加文件通常可以自動進行「Base64」方式編碼(僅對附件部分進行編碼)。在用「附件」方式發送郵件之前,無需進行編碼;否則適得其反。因為郵件軟體能夠自動成功解碼這類「附加」文件,因此在發送中文類郵件時應該首選這種方法。
如果無法以附件方式發送文件,則必須在正文中發送中文或二進制文件如果發/收件人之間遠隔萬里,則傳送過程中,第八位將可能被截掉。這時最好先在正文中用中文給收件人發一封測試信,並了解對方能否正確收到郵件正文。如果第八位被截掉,則收件人將會看到一些亂碼,而不是上述的uu/b64/Qp等格式,而且這種信件幾乎不可恢復。
對策:在Netscape、Eudora或Pegasus Mail等你所使用的郵件系統中,選擇其首選項或選項配置中的「Quoted Printalbe」或「MIME encoding」。
(6)選擇優秀的客戶端郵件軟體
選擇優秀E-mail收發軟體可有效解決郵件亂碼。
3.為排除亂碼,收信方應注意:
查找郵件:簽字欄或正文中有無指明本郵件所使用漢字標准碼類別的英文字元;在「查看(V)」下拉菜單中選中「語言」,隨後出現的菜單中會包括本系統所能支持的全部漢字標准,在其中單擊郵件中所指明的一種。如果收到的郵件中沒有指明其所使用的漢字標准,則只可按順序單擊,直到郵件正文顯示正確為止(數個漢字標准中必有一個前面有「.」標記,此即您編輯器所用的漢字標准)。若使用的是Netscape,可在Option菜單的Document Encode中選擇相應的項目。
4.在非中文平台上中文郵件不出現亂碼方法
當對方沒有中文平台而打開您發的中文郵件時,就會出現亂碼。解決辦法有兩種:
(1)用E-mail AID之類的工具
UCWIN GOLD 1.0附帶的工具E-mail AID可把文本文件轉換為AID格式文件,大小隻比原TXT文件增加幾K。寫好中文郵件後,用文本格式存檔,然後用E-mail AID以AID格式保存,最後把此文件連同E-mail AID一起作為附件插在信中。對方收到信後,只需運行E-mail AID打開AID格式文件即可看到漢字,不管對方在何語言平台下,都不會出現亂碼。
(2)把中文郵件以圖形格式保存
用畫筆等繪圖軟體書寫中文郵件,在圖片中輸入文字,用默認的BMP格式保存,將屬性置為黑白模式(以減少BMP圖片體積),然後用Winzip把它壓縮成ZIP格式,作為附件在郵件中發送,這樣不管對方在何語言平台下,都不會出現亂碼。這種方法的缺點是生成的BMP中文郵件體積太大。
參考資料:http://www.xyhhxx.com/news/IT/20050912213229.htm

http://www.crsky.com/soft/93.html

這里有注冊機

南極星全球通 v2.51
軟體大小:8.64 MB
軟體語言:英文
軟體類別:國產軟體 / 轉換翻譯
授權方式:共享版
運行環境:Win2003, WinXp, Win2000, Nt, WinMe, Win9x
更新時間:2004-7-21 10:20:00
軟體添加:林逸凡
軟體評級:
會員級別:匿名用戶
開 發 商:http://www.njstar.com/com..
界面預覽:

軟體簡介:鏡像虛擬主機,域名 免費個人主頁申請 Excel伺服器學習和下載
南極星全球通(Njstar Communicator)允許你查看並且輸入中、日、韓文到任何桌面程序中,自動內碼識別,可用各種輸入方法(拼音、注音、雙拼、倉頡等),自動按所查看文本的內碼輸入,可在MSOffice 97中輸入,提供強大的內碼轉換工具,支持4.x版的IE和Netscape!升級版本,需要預先安裝2.0版。內置了Email客戶端軟體NJStar ExpressMail,加入了韓文輸入法,增加了虛擬鍵盤,自動將中日韓文郵件以GIF圖片格式發送,經過改良的內碼轉換器Universal Code Convertor增加了自動監測內碼及轉換為GIF圖片格式選項,支持IE5,修復了NT沖突及一些其他的問題。

與伺服器內碼相關的知識