首页 / PHP / php-无法在MySQL中正确获得编码
php-无法在MySQL中正确获得编码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-无法在MySQL中正确获得编码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1937字,纯文字阅读大概需要3分钟。
内容图文
一段时间以来,我一直在努力解决MySQL中的编码问题.我正在建立一个数据库,该数据库不仅包含拉丁文,而且还包含西里尔文和阿拉伯文.因此,这是有关如何创建数据库的示例:
CREATE DATABASE db1
DEFAULT CHARACTER SET utf8
COLLATE utf8_unicode_ci;
然后是一张桌子:
CREATE TABLE TempTb1
(
ID INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
arabic VARCHAR(100) NOT NULL
)
DEFAULT CHARACTER SET utf8
COLLATE utf8_unicode_ci;
当我输入一些数据并选择它时,我只会得到一些奇怪的字符.所以我写了一个小的PHP脚本来测试它,但是它也不起作用:
<?php
header('Content-type: text/plain; charset=utf-8');
$a = mysql_connect('localhost','root','') or die('Problem connecting to database!');
$b = mysql_select_db('db1') or die('Problem selecting database');
mysql_set_charset('utf8');
mysql_query("set names 'utf8'");
mysql_query('set character set utf8');
$query = mysql_query("SELECT * FROM Tb1;");
while($row = mysql_fetch_assoc($query))
{
$id = $row['ID'];
$name = $row['name'];
$arabic = $row['arabic'];
echo $id.' '.$name.' '.$arabic.PHP_EOL;
}
?>
我已经使用utf8_unicode_ci和utf8_general_ci进行了测试.有什么事吗顺便说一句,我有EasyPHP 5.2.10.
解决方法:
我想,无论您的角色发生什么,都要在到达MySQL之前发生.输入字符时,计算机将字符转换为数字.然后,这些数字从这里到这里,在Web表单和服务器,Web服务器和脚本解释器之间,然后在数据库服务器之间以相同的方式返回到Web页面.
您在哪里以及如何输入数据?数据应退出输入方式.如果您的数据是通过Web表单提供的,请检查您的网页编码以及提交表单的方式.如何在PHP脚本中获取它们以及如何将它们发送到数据库服务器.这里的罪魁祸首可能不是MySQL,而是另一个地方.也可以是MySQL.但这不是唯一可能发生错误行为的地方,也可能不是.
检查您的页面,检查标题到达浏览器时的标题.
关于您的问题收到的评论,不,使用ISO5不好,因为您需要多个ISO5系列.在大多数情况下,您必须使用Unicode编码,最好是utf-8.另外,这与您使用哪个MySQL库无关,除非该库具有一些已知的错误,而这些错误对于那些古老的东西是非常不可能的. :)您仍然应该使用推荐的最佳做法;但是您当前的问题与您使用的库无关.弊端在于您如何输入数据和如何查看数据.
内容总结
以上是互联网集市为您收集整理的php-无法在MySQL中正确获得编码全部内容,希望文章能够帮你解决php-无法在MySQL中正确获得编码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。