У меня есть Access DB, в которой много людей с корейскими именами.У меня есть классический ASP-сайт, который довольно счастливо читает данные из БД и отображает их правильно.Сейчас я занимаюсь разработкой другого сайта на PHP, но он не может отображать корейские символы.Я написал два очень простых скрипта, один на ASP и один на PHP, чтобы понять почему.
ASP:
<%
Response.CodePage = 65001
Set objLoginConn = Server.CreateObject("ADODB.Connection")
objLoginConn.Provider = "Microsoft.Jet.OLEDB.4.0"
objLoginConn.Open "C:\wwwroot\mydb.mdb"
Set rs = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT firstname FROM mytable"
rs.Open SQL, objLoginConn, 3, 3
while not rs.EOF
response.write("<p>"& rs.fields("firstname").value &"</p>")
rs.movenext
wend
%>
PHP:
<?php
$con = new COM("ADODB.Connection") or die("Cannot start ADO");
$con->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = mydb.mdb");
$SQL = "SELECT firstname FROM mytable";
$rs = $con->execute($SQL);
while (!$rs->EOF) {
echo "<p>".$rs->Fields("firstname")->value."</p>";
$rs->movenext();
}
?>
Сценарий ASP печатает все имена правильно, но сценарий PHP печатает загрузку символов?Если я удаляю бит Response.CodePage = 65001
из сценария ASP, он печатается так же, как PHP.
Затем я сосредоточился на поиске эквивалента PHP Response.CodePage = 65001
и нашел такие вещи, как header('Content-Type:text/html; charset=UTF-8');
и ini_set('default_charset', 'UTF-8');
, но они не справились с работой.
Может кто-нибудь указать мне направильное направление?