Heim  >  Artikel  >  Web-Frontend  >  Von GB zu UTF-8_Experience-Austausch

Von GB zu UTF-8_Experience-Austausch

WBOY
WBOYOriginal
2016-05-16 12:10:041734Durchsuche

Jetzt wird die Kodierung vieler chinesischer Websites von gb2312 auf utf-8-Kodierung umgestellt. Es treten viele Probleme auf, die hier zusammengefasst sind:

Voraussetzung:

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.

ASP-Artikel

Codepage-Einstellung:

Die erste Zeile der ASP-Datei: <%@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.
Hinweis: Wenn Sie die Access-Datenbank verwenden, sind nur die beiden oben genannten Schritte erforderlich. Access selbst verwendet die UTF-8-Kodierung.

Wenn ein Vorlagenprogramm verwendet wird

Das übliche Vorlagenprogramm liest und schreibt Dateien über das FSO-Objekt. Diese Methode kann jedoch utf-8 nicht unterstützen und muss in ein Stream-Objekt geändert werden, um Dateien zu lesen und zu schreiben. Hier sind einige wichtige Codezeilen:
Verwenden Sie stram, um Dateien zu lesen
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

.Charset = "utf-8"

.Position = objStream.Size

.LoadFromFile server.mappath(" sc.htm")

wstr = .ReadText

.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 = Nothing

Stream 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
.Close

End With Set objStream = Nothing PHP-Artikel

php und Zugangsverbindung:


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");

$rs = $conn->Execute("select * from data");

while nicht $rs ->EOF

echo $rs->Fields['title']->value;

?>

PHP- und MySQL-Verbindung

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);
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn