为什么编码是utf-8还是问号?
发布网友
发布时间:2022-04-23 13:24
我来回答
共3个回答
热心网友
时间:2023-10-15 13:19
我想应该是UTF-8的BOM头造成的,BOM头是UTF-8文件头信息不会显示,问题出在它不是必选项,一些软件无法识别它,会把它当成内容的一部分导致乱码,
去除代码我只会PHP,不会JSP,自己找找吧
<?php
if (isset($_GET['dir'])) { //设置文件目录
$basedir = $_GET['dir'];
} else {
$basedir = '.';
}
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, $auto = 1) {
$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 ("BOM found, automatically removed.");
} else {
return ("BOM found.");
}
}
else
return ("BOM Not Found.");
}
function rewrite($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
来自:求助得到的回答
热心网友
时间:2023-10-15 13:19
1、先是你的文本编码是否保存为utf-8 2、有没有对文档的charset字符串声明文档为utf-8编码。
热心网友
时间:2023-10-15 13:20
文件在保存的时候也得是utf8追问保存的也是utf-8,我servlet跳转过来就不行....好像所有的servlet跳转后的页面中文都不能正常显示,我刚才没看清楚,请问怎么解决?
热心网友
时间:2023-10-15 13:19
我想应该是UTF-8的BOM头造成的,BOM头是UTF-8文件头信息不会显示,问题出在它不是必选项,一些软件无法识别它,会把它当成内容的一部分导致乱码,
去除代码我只会PHP,不会JSP,自己找找吧
<?php
if (isset($_GET['dir'])) { //设置文件目录
$basedir = $_GET['dir'];
} else {
$basedir = '.';
}
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, $auto = 1) {
$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 ("BOM found, automatically removed.");
} else {
return ("BOM found.");
}
}
else
return ("BOM Not Found.");
}
function rewrite($filename, $data) {
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
来自:求助得到的回答
热心网友
时间:2023-10-15 13:19
1、先是你的文本编码是否保存为utf-8 2、有没有对文档的charset字符串声明文档为utf-8编码。
热心网友
时间:2023-10-15 13:20
文件在保存的时候也得是utf8追问保存的也是utf-8,我servlet跳转过来就不行....好像所有的servlet跳转后的页面中文都不能正常显示,我刚才没看清楚,请问怎么解决?