현재 많은 중국 웹사이트의 인코딩이 gb2312에서 utf-8 인코딩으로 변환되고 있습니다. 발생하는 많은 문제가 여기에 요약되어 있습니다.
모든 파일이 ANSI가 아닌 UTF-8 인코딩으로 저장되었는지 확인하세요
특정 설정: 텍스트 편집기를 사용하는 경우 파일 저장 시 인코딩 선택이 있습니다(그림 1) UTF-8로 선택하면 됩니다.
드림위버를 사용한다면 조금 더 번거로울 것입니다.
Dreamweaver를 사용하여 정적 파일을 편집하는 경우 파일의 charset 태그를 utf-8(<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
에서 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
로 변경한 다음 다른 이름으로 저장을 선택하면 Dream에서 파일이 utf-8로 인코딩됨
참고: 액세스 데이터베이스를 사용하는 경우 위의 두 단계만 필요합니다. 액세스 자체는 UTF-8 인코딩을 사용합니다.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
이 다음으로 변경되었습니다. <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
이는 ASP가 ADO를 통해 데이터베이스에 액세스하는 데 사용하는 인코딩을 직접 결정합니다. objStream = 설정 Server.CreateObject(" ADODB.Stream") <code>Set objStream = Server.CreateObject("ADODB.Stream") <br> With objStream <br> .Open <br> .Charset = "utf-8" <br> .Position = objStream.Size <br> .LoadFromFile server.mappath("sc.htm")<br> wstr = .ReadText<br> .Close <br> End With <br>Set objStream = Nothing<br>
objStream 사용 Set objStream = Server.CreateObject("ADODB.Stream") <br> With objStream <br> .Open <br> .Charset = "utf-8" <br> .Position = objStream.Size <br> .WriteText=wstr <br> .SaveToFile server.mappath("wz/sc_" & classid & ".htm"),2 <br> .Close <br> End With <br>Set objStream = Nothing
.Open .Close
End With<?php<BR>$conn = new COM("ADODB.Connection",NULL,65001) or die("ADO connect failed!");<BR>$rs = new COM("ADODB.RecordSet") or die("ADO recordset fail"); $conn->open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb"); <br>$rs = $conn->Execute("select * from data");<br>while not $rs->EOF<br>echo $rs->Fields['title']->value;<br>?>
Set objStream = Nothingstream을 사용하여 파일 쓰기
Set objStream = Server.CreateObject ("ADODB.Stream" ) objStream 사용 <p> .Open </p> .Charset = "utf-8" <code><?php mysql_query("SET NAMES 'utf8'"); ?>
.Position = objStream.Size .WriteText=wstr .SaveToFile 서버 .mappath("wz/ sc_" & classid & ".htm"),2 End With objStream = Nothing으로 설정
php 문서
Windows 호스트에서 PHP의 com 확장자를 사용하여 ADODB.Connection을 설정할 때 코드 페이지 매개변수를 65001<?php<BR>$conn = new로 지정합니다. COM(" ADODB.Connection",NULL,65001) 또는 die("ADO 연결 실패!");</P>$rs = new COM("ADODB.RecordSet") 또는 die("ADO 레코드 세트 실패"); -> open("Provider=Microsoft.Jet.OLEDB.4.0;데이터 소스=data.mdb")
while $rs ->EOF
echo $rs->Fields['title']->value;mysql 데이터베이스와 연결을 설정한 후 먼저 다음 SQL 쿼리를 실행합니다.
<?php<BR>require_once('adodb/adodb.inc.php'); <BR>$conn =& ADONewConnection('ado_access'); <BR>$conn->charPage ='65001';<br>//$conn->charPage = 65001;<br>//$conn->debug = true;<br>$dsn = sprintf("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= %s",realpath('2data.mdb'));<br>// $dsn = sprintf("Driver={Microsoft Access Driver (*.mdb)};Dbq=%s",realpath("data.mdb"));<br>$conn->Connect($dsn);
mysql manual 세트 이름 설명 SET NAMES는 클라이언트가 보낸 SQL 문에 어떤 문자 세트가 사용되었는지 표시합니다. 따라서 SET NAMES 'cp1251' 문은 "이 클라이언트의 향후 정보는 문자 집합 cp1251을 사용할 것입니다."라고 서버에 알립니다. 또한 서버가 클라이언트에 다시 보내는 결과에 대한 문자 집합을 지정합니다. (예를 들어 SELECT 문을 사용하는 경우 열 값에 어떤 문자 집합이 사용되는지 나타냅니다.) SET NAMES 'x' 문은 다음 세 가지 문과 동일합니다.
mysql> SET Character_set_client = x;
adodb 클래스 사용:
'charpage' 속성을 65001로 설정합니다. <?php<🎜>require_once('adodb/adodb.inc.php') <🎜>$conn =& ADONewConnection('ado_access' ) ; <🎜>$conn->charPage ='65001';//$conn->charPage = 65001;//$conn->debug = true;$dsn = sprintf("공급자=Microsoft.Jet.OLEDB.4.0;데이터 소스= %s",realpath('2data.mdb'));// $dsn = sprintf("드라이버={Microsoft Access Driver (*. mdb )};Dbq=%s",realpath("data.mdb"));$conn->Connect($dsn);