PHP에서 한자가 깨져 나오는 문제와 데이터베이스에서 한자가 깨져 나오는 문제
데이터베이스에 한자 데이터를 쓸 때, 즉, mysql을 사용하여 쿼리할 때 문자가 깨집니다. 모두 ??? 문자처럼 보일 것입니다.
이 상황의 근본 원인은 삽입할 데이터가 gbk 유형이라는 것을 mysql 데이터베이스에 명시적으로 알려주지 않기 때문입니다.
해결책:
쿼리 시 문자 유형 정의:
mysql_query("set names 'gbk'")
다음은 참조용 전체 예입니다.
<?php /* @中文字符入库乱码的解决方法 @www.php.cn */ include_once("conn.php"); include_once("include.php"); mysql_query("set names 'gbk'")or die("设置字符库失败\n"); mysql_select_db($db)or die("连接数据库失败!\n"); $exec = "select * from $table"; //echo $exec; $result = mysql_query($exec,$conn)or die("查询数据库失败\n"); echo "<table border=2>"; for($cout=0;$cout<mysql_numrows($result);$cout++) { $city = mysql_result($result,$cout,city); $name = mysql_result($result,$cout,name); $phone = mysql_result($result,$cout,phone); echo "<tr>"; echo "city: $city"; echo "name: $name"; echo "phone: $phone"; echo "</tr>"; } echo "</table>"; ?>