Heim > Artikel > Web-Frontend > Von GB zu UTF-8_Experience-Austausch
Jetzt wird die Kodierung vieler chinesischer Websites von gb2312 auf utf-8-Kodierung umgestellt. Es treten viele Probleme auf, die hier zusammengefasst sind:
Stellen Sie sicher, dass alle Dateien in UTF-8-Kodierung und nicht in ANSI gespeichert werden
Spezifische Einstellungen: Wenn Sie einen Texteditor verwenden, gibt es beim Speichern der Datei eine Kodierungsauswahl (Abbildung 1) Wählen Sie einfach UTF-8 aus.
Wenn Sie Dreamweaver verwenden, ist dies etwas umständlicher.
Wenn Sie Dreamweaver zum Bearbeiten statischer Dateien verwenden, ändern Sie das Zeichensatz-Tag der Datei in utf-8: <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
in <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
und wählen Sie dann Speichern unter. Dream speichert die Datei als utf-8-codiert
Hinweis: Wenn Sie die Access-Datenbank verwenden, sind nur die beiden oben genannten Schritte erforderlich. Access selbst verwendet die UTF-8-Kodierung.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
wurde geändert in: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
Dadurch wird auch direkt die von ASP für den Zugriff auf die Datenbank über ADO verwendete Codierung bestimmt. Setzen Sie 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>
Mit 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 zum Schreiben von Dateien verwenden
Set objStream = Server.CreateObject ("ADODB.Stream") Mit objStream <p> .Open </p> .Charset = "utf-8" <code><?php mysql_query("SET NAMES 'utf8'"); ?>
.Position = objStream.Size .WriteText=wstr .SaveToFile Server .mappath("wz/ sc_" & classid & ".htm"),2 End With Set objStream = Nothing
PHP-Artikel
Verwenden Sie die COM-Erweiterung von PHP auf dem Windows-Host, um eine Verbindung zur Access-Datenbank herzustellen. Geben Sie beim Einrichten von ADODB.Connection den Codepage-Parameter als 65001 an<?php<BR>$conn = new COM(" ADODB.Connection",NULL,65001) or die("ADO-Verbindung fehlgeschlagen!");</P>$rs = new COM("ADODB.RecordSet") or die("ADO-Recordset-Fehler"); -> open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=data.mdb");
while nicht $rs ->EOF
echo $rs->Fields['title']->value;Nachdem Sie eine Verbindung mit der MySQL-Datenbank hergestellt haben, führen Sie zunächst die folgende SQL-Abfrage aus:
<?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-Handbuch Beschreibung der Satznamen SET NAMES zeigt an, welcher Zeichensatz in der vom Client gesendeten SQL-Anweisung verwendet wird. Daher teilt die SET NAMES-Anweisung „cp1251“ dem Server mit, dass „zukünftige Informationen von diesem Client den Zeichensatz cp1251 verwenden werden“. Außerdem wird der Zeichensatz für die Ergebnisse angegeben, die der Server an den Client zurücksendet. (Wenn Sie beispielsweise eine SELECT-Anweisung verwenden, gibt diese an, welcher Zeichensatz für die Spaltenwerte verwendet wird.) Die SET NAMES 'x'-Anweisung entspricht diesen drei Anweisungen:
mysql> SET Character_set_client = x;
Verwenden Sie die ADODB-Klasse:
Setzen Sie das Attribut „charpage“ auf 65001; <?php<🎜>require_once('adodb/adodb.inc.php'); ) ; <🎜>$conn->charPage ='65001';//$conn->charPage = 65001;//$conn->debug = true;$dsn = sprintf ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= %s",realpath('2data.mdb'));// $dsn = sprintf("Driver={Microsoft Access Driver (*. mdb )};Dbq=%s",realpath("data.mdb"));$conn->Connect($dsn);