字符编码问题

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

7回答
guly 2018-07-02 10:08:34

你好,该问题为字符编码与编译器编码不同,建议修改编译器编码,比如

phpstorm编译器:

在右下角设置字符编码

http://img1.sycdn.imooc.com//climg/5b3987fa00015a2904021052.jpg

subline 编译器

http://img1.sycdn.imooc.com//climg/5b3988be0001bbe304880373.jpg

http://img1.sycdn.imooc.com//climg/5b3988c70001c07505550350.jpg

atom编译器:

http://img1.sycdn.imooc.com//climg/5b39890a0001f5b007510452.jpg

如果解决您的问题请采纳,祝学习愉快!



imooc_澈 2018-07-01 12:31:48

您好,小慕试了您贴出的代码,在小慕的编辑器里没有乱码,应该是文件保存编码格式有问题,根据您使用的编辑器类型,将您的文件以utf8格式保存即可。祝学习愉快~

  • 提问者 jujijigo #1
    请问怎样可以设置或者更改文件以utf8格式保存?我是win10系统,直接用的系统的文件资源管理器复制的文件到www下的相关文件夹。
    2018-07-01 19:06:28
提问者 jujijigo 2018-06-30 19:38:32

设置为如代码设置成utf-8的时候内容的中文正常显示,中文文件名乱码。

改为GBK的时候中文文件名正常显示,中文内容乱码。

  • 你这个是文件乱码,代码放到我的编辑器上保存以后没有问题,应该是保存方式有问题,可以参考下这个链接 https://www.cnblogs.com/unique196/p/5591508.html 网上也有很多这种问题的解决办法的。
    2018-07-01 10:06:57
  • 提问者 jujijigo 回复 辰星辰 #2
    我是windows系统,用的wamp,找不到链接文章的里说的文件夹。
    2018-07-01 12:04:36
  • 辰星辰 回复 提问者 jujijigo #3
    文件夹那个你不用管,你这就是编辑器的文件保存编码出了问题,一般记事本默认使用ANSI编码进行保存,就是看看你的编辑器是以什么编码保存文件的,你用的什么编辑器就百度一下这种编辑器怎么修改保存编码,或者你直接换成sublime编辑试试。这个是sublime改保存编码的方法可以参考下: https://jingyan.baidu.com/article/f79b7cb30bf7129145023e70.html
    2018-07-01 12:29:21
提问者 jujijigo 2018-06-30 19:37:15

以下是dir.func.php文件的代码:

<?php
header('content-type:text/html;charset=utf-8');
/**
 * 读取目录下的信息返回
 * @method read_directory
 * @param string $path  目标目录
 * @return mixed    false|array
 */
function read_directory(string $path)
{
    if (!is_dir($path)) {
        return false;
    }
    $info = [];
    $handle = opendir($path);
    while (($item = @readdir($handle)) !== false) {
        if ($item != '.' && $item != '..') {
            $filePath = $path . DIRECTORY_SEPARATOR . $item;
            $info['fileName'] = $filePath;
            $info['showName'] = $item;
            $info['readable'] = is_readable($filePath) ? true : false;
            $info['writable'] = is_writable($filePath) ? true : false;
            $info['executable'] = is_executable($filePath) ? true : false;
            $info['atime'] = date('Y/m/d H:i:s', fileatime($filePath));
            if (is_file($filePath)) {
                $arr['file'][] = $info;
            }
            if (is_dir($filePath)) {
                $arr['dir'][] = $info;
            }
        }
    }
    closedir($handle);
    return $arr;
}


提问者 jujijigo 2018-06-30 19:36:38

我是在每个文件都设置了编码格式。以下是index.php的代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
 <title>WEB在线文件管理器</title>

    <!-- Bootstrap -->
 <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 -->
    <!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 -->
    <!--[if lt IE 9]>
    <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script>
    <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<?php
header('content-type:text/html;charset=utf-8');
//读取管理项目,并且展示
require_once 'lib/dir.func.php';
date_default_timezone_set("PRC");
error_reporting(E_ALL&~E_NOTICE);
define('WEBROOT','webroot');
$path=$_REQUEST['path'] ? $_REQUEST['path']: WEBROOT ;
$info=read_directory($path);
//print_r($info);exit;
if(!is_array($info)){
 exit("<script>
 alert('读取失败');
 location.href='index.php';
    </script>");
}
?>
<div class="container">
    <div class="row clearfix">
        <div class="col-md-12 column">
            <nav class="navbar navbar-default" role="navigation">
                <div class="navbar-header">
                    <button type="button" class="navbar-toggle" data-toggle="collapse"
 data-target="#bs-example-navbar-collapse-1"><span class="sr-only">切换导航</span><span
 class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span>
                    </button>
                    <a class="navbar-brand" href="index.php"><span class="glyphicon glyphicon-home" aria-hidden="true"></span>首页</a>
                </div>

                <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
                    <ul class="nav navbar-nav">
                        <li class="active">
                            <a href="#"><span class="glyphicon glyphicon-folder-open"></span>新建目录</a>
                        </li>
                        <li>
                            <a href="#"><span class="glyphicon glyphicon-file" aria-hidden="true"></span>新建文件</a>
                        </li>
                        <li>
                            <a href="#"><span class="glyphicon glyphicon-upload" aria-hidden="true"></span>上传文件</a>
                        </li>
                        <li>
                            <a href="#"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>系统信息</a>
                        </li>
                    </ul>
                    <form class="navbar-form navbar-left" role="search">
                        <div class="form-group">
                            <input type="text" class="form-control"/>
                        </div>
                        <button type="submit" class="btn btn-default">搜索</button>
                    </form>
                </div>
            </nav>
            <div class="jumbotron nofollow">
                <h1>
                    WEB在线文件管理器
 </h1>
                <p>
                    WEB在线文件管理器主要是用于管理项目文件,实现在线编辑、修改、删除等操作。
 </p>
                <p>
                    <a class="btn btn-primary btn-large" href="#">查看更多 »</a>
                </p>
            </div>
            <table class="table table-bordered table-hover table-condensed">
                <thead>
                <tr>
                    <th>
                        类型
 </th>
                    <th>
                        名称
 </th>
                    <th>
                        读/写/执行
 </th>
                    <th>
                        访问时间
 </th>
                    <th>
                        操作
 </th>
                </tr>
                </thead>
                <tbody>
提示回答过长后面部分删除了


好帮手慕查理 2018-06-30 17:41:55

您好,从您的截图中的代码反馈的是 <meta charset="utf-8">。 请您反馈一下具体的代码,以及在哪设置的编码格式。以便帮助您解决。祝学习愉快!

提问者 jujijigo 2018-06-30 16:57:12

请问这种问题怎么解决?


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师