在phpmyadmin输入数据后 通过Navicat for MYSQL 打开表后有数据的地方都显示BLOB 并且在Navicat 下无法插入数据。
PHP输出后乱码
在phpadmin中可以插入数据,显示正常
注:PHP中加了header('content-type;text/html;charset=utf-8');问题依旧
请问各位为什么呢?如何解决
谢谢
PHP输出后乱码
在phpadmin中可以插入数据,显示正常
注:PHP中加了header('content-type;text/html;charset=utf-8');问题依旧
请问各位为什么呢?如何解决
谢谢
解决方案 »
- 请问下面的这两句是什么意思?有什么区别?什么时候用?
- 网站购物车的SESSION是否要有缓存?
- session保留问题
- PHP+apache 的配置出问题 求助
- include_path='.:/usr/share/php:/usr/share/pear'
- 用ODBC连接显示SQL 2005成功,但怎么用mssql_connect不行呢>?
- SOS!全局变量问题?
- 紧急求救:自动刷新页面,如何能让页面不闪。只是表里的数据动。(在线等待)
- 有关mail函数的问题
- 用Python将输入的数据使用递归倒叙输出
- header('HTTP/1.1 200 OK');为什么在linux下无法使用
- NULL是一个值呀,还是一个类型呀?
呢?数据库编码是utf8吗?
是的。
我是从PHPMYADMIN里插入的数据 在Navicat 里显示BLOB ,在PHP里输出显示??????
不知道怎么回事
`id` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE = MYISAM
INSERT INTO `testing`.`tb_test` (
`id` ,
`name`
)
VALUES (
NULL , '你好,我是俊。'
);
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
</head>
<body>
<?
$hostname_mydatabase = "localhost";
$database_mydatabase = "testing";
$username_mydatabase = "root";
$password_mydatabase = "";
$mydatabase = mysql_pconnect($hostname_mydatabase,$username_mydatabase,$password_mydatabase) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_mydatabase,$mydatabase);$selectSQL="select * from tb_test where id='1'";
$resultSQL=mysql_query($selectSQL);
mysql_query("SET NAMES 'utf8'");
$rowSQL=mysql_fetch_object($resultSQL);echo $rowSQL->name;?>
</body>
</html>
有的版本的PHPMYADMIN里插入数据可能不会以和该数据库相同的编码插入或更新。
比如数据库是utf8的编码,用PHPMYADMIN插入或更新的可能是gb2312或lantin1什么的。再就是在PHPMYADMIN查看你表的结构表和字段后的“整理”项里显示的编码是否是utf8的?
关键是字符型的字段。不是的话,就把这些字段的编码改为utf8_general_ci
主要是你编码时的格式要为utf-8,数据库建立时也要选择相应的utf-8。
再者是你在编码连接数据库时,先发给“set names 'utf8'”这个信息给数据库
这样之后应该不会有问题,建议LZ试下
MySQL 中文显示乱码
如果 没乱码就是你PHP读的时候编码没对了! 一半乱码一半正常的话那你就个别处理了!
谢谢大家的热情帮助!!!
找到个小程序,可以批量去除BOM头信息,分享:<?php
//把该文件放到WEB根目录下,运行一次可以清除当前目录及所有子目录中所有文件的BOM Header。
//经测试,安全。
if (isset($_GET['dir'])){ //设置文件目录
$basedir=$_GET['dir'];
}else{
$basedir = '.';
}
$auto = 1;
checkdir($basedir);
function checkdir($basedir){
if ($dh = opendir($basedir)) {
while (($file = readdir($dh)) !== false) {
if ($file != '.' && $file != '..'){
if (!is_dir($basedir."/".$file)) {
echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}
closedir($dh);
}
}
function checkBOM ($filename) {
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) {
if ($auto == 1) {
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return ("<font color=red>BOM found, automatically removed.</font>");
} else {
return ("<font color=red>BOM found.</font>");
}
}
else return ("BOM Not Found.");
}
function rewrite ($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>