mysql乱码

brilliant_fgh 2011-01-19 02:59:17
1.例如access数据库存入德语"Bildseitenverhältnis",注意这个 ä ,在access表打开看的是正常,但用php连接access显示此字段显示乱码为 Bildseitenverh?ltnis ,

我的php页面为utf-8格式, 程序己设置 mysql_query("SET NAMES 'utf8'");

mb_convert_encoding(odbc_result($query,"word"),"UTF-8","GBK"); 这种方法也是显示 Bildseitenverh?ltnis
iconv("gb2312","utf-8",odbc_result($query,"word")); 这种方法也是显示 Bildseitenverh?ltnis

2.mysql数据库,如果把 Bildseitenverhältnis 真接在phpmyadmin手动插入,然后php读出也是 Bildseitenverh?ltnis,数据库此字段为 utf8_general_ci .

在网上找了找,也没找到解决的办法,有遇到这样的情况吗,该怎样解决,谢谢大家!
...全文
133 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
hzczichao 2011-01-20
  • 打赏
  • 举报
回复
保持页面 数据库编码,文件编码一致
skyaspnet 2011-01-19
  • 打赏
  • 举报
回复
ACCESS用ODBC读取时会有一个多字节乱码的问题,我当时是这样解决的:


while($this->fetch_row($query))
{
$articleID[$i]=odbc_result($query,"articleID");
$articleTitle[$i]=odbc_result($query,"Title");
$articleContent[$i]=odbc_result($query,"Content");
$categoryID[$i]=odbc_result($query,"classid");
$updateTime[$i]=odbc_result($query,"updateTime");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content").odbc_result($query,"Content");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content");
$articleContent[$i]=$articleContent[$i].odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content").odbc_result($query,"Content");
if(odbc_result($query,"articleID")==81)
{
echo $articleContent[$i];
}

$i++;
}


我采取的是多次读取odbc_result的方式完成了数据转换
skyaspnet 2011-01-19
  • 打赏
  • 举报
回复
这个问题我也遇到过,当时是改一个ASP的小网站为PHP遇到的,

如果是从ACCESS转移数据到MYSQL,不建议写程序转换,建议使用专门的转换工具:

ACCESS数据库转换MYSQL数据库的软件-月光博客
skyaspnet 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 brilliant_fgh 的回复:]
access数据库显示正常,就是php连接access读出显示乱码,比如access表里正常显示为 Größe ,读出显示后 Gr??e ,就是一些特殊的符号就显示成问号!我拿中文测试了下,可以正常显示,就是其它国家语言的一些特殊字母显示为问号!
[/Quote]

用的是ODBC吗?
brilliant_fgh 2011-01-19
  • 打赏
  • 举报
回复
access数据库显示正常,就是php连接access读出显示乱码,比如access表里正常显示为 Größe ,读出显示后 Gr??e ,就是一些特殊的符号就显示成问号!我拿中文测试了下,可以正常显示,就是其它国家语言的一些特殊字母显示为问号!
deyygywxf 2011-01-19
  • 打赏
  • 举报
回复
access 读出在iconv 也不行?

在网上找找看读出来的是什么编码在转换
ihefe 2011-01-19
  • 打赏
  • 举报
回复
access 读出在iconv 也不行?

在网上找找看读出来的是什么编码在转换
kyzy_yy_pm 2011-01-19
  • 打赏
  • 举报
回复
请问楼主数据库中显示是正确的么?
daresheep 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brilliant_fgh 的回复:]

第2个己解决,就是php读取access还是乱码!
[/Quote]

很不幸的告诉你. 我也遇到了一样的问题. 还是线上的东西..已经凉了几个月了...求解...
daresheep 2011-01-19
  • 打赏
  • 举报
回复

<?php
if(isset($_POST['text'])){
$text=$_POST['text'];
$mysql =new mysqli('localhost','root','root','test');
$mysql->query("SET NAME 'utf8'");
$mysql->query("INSERT INTO `test`(`test`)VALUES('$text')");
$result = $mysql->query("SELECT * FROM `test`");
while($row =$result->fetch_array()){
echo $row['test'].'<br/>';
}
}
?>

<form method="POST">
<input type="text" name="text"/>
<input type="submit" value="submit"/>
</form>


在插入数据和读取数据的之前都执行一下SET NAMES, 应该是OK的.
brilliant_fgh 2011-01-19
  • 打赏
  • 举报
回复
第2个己解决,就是php读取access还是乱码!

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧