0

しばらく前にデータが挿入されたテーブルがあります。phpに含まれるデータとそれに含まれる文字セットはutf-8でした。

mysql_query("set names utf8");

今、私はすべてのデータがphpmysqlのデフォルトの文字セットで表示される別のプロジェクトでこのテーブルが必要です。

問題:私のデータはペルシア語です。文字セットutf-8を設定すると、すべて問題ありませんが、文字セットデータがないと「?????」に変換されます。私は何をすべきか?!

古いテーブルのすべてのデータを新しい文字セットの新しいテーブルにインポートしたい!!

4

3 に答える 3

0
///
$SERVER = "http://localhost:8084";
$db = mysql_connect('localhost','root') or die("Not Connected");
$sldb = mysql_select_db('vifarbydata',$db);

mysql_query("set names utf8");
$sql = "SELECT * FROM `region`  ";
$res = mysql_query($sql);
while($h=(mysql_fetch_array($res)))
{
    $row[] = $h;
}
mysql_close($db);
/// set another character set
$SERVER = "http://localhost:8084";
$db = mysql_connect('localhost','root') or die("Not Connected");
$sldb = mysql_select_db('vifarbydata',$db);
foreach ($row as $item)
{
    echo $sql = "insert into  `region2` (id,name,myId) values (".$item['id'].",'".$item['name']."','".$item['myId']."')  ";
    mysql_query($sql);
}
于 2012-12-31T13:23:20.027 に答える
0

これを試してみてください

<?php

   header('Content-Type: text/html; charset=utf-8');
?>
and then in the connection

<?php
 $dbLink = mysql_connect($argHost, $argUsername, $argPassword);
    mysql_query("SET character_set_results=utf8", $dbLink);
    mb_language('uni'); 
    mb_internal_encoding('UTF-8');
    mysql_select_db($argDB, $dbLink);
    mysql_query("set names 'utf8'",$dbLink);
?>
于 2012-12-31T11:54:47.563 に答える
0

@afsane、mysqldump を使用して、データを old_table からダンプし、新しい文字エンコーディングを持つ new_table にインポートできます。

mysqldump -u user -p --no-create-info schema old_table > old_table.dump
mysql -u user -p schema new_table < old_table.dump

これは、PHP を介して変換を行うよりもはるかに高速です。

于 2012-12-31T13:55:42.763 に答える