问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php 将中文转换为GBK编码

发布网友 发布时间:2022-04-22 22:09

我来回答

6个回答

懂视网 时间:2022-04-28 06:23

php转换文件编码的方法:使用函数【str_replace】转换文件编码到新文件夹,代码为【$newPath = str_replace(THIS_PATH, THIS_PATH . DS . Cover, $v)】。

php转换文件编码的方法:

代码

<?php
define('THIS_FILE', __FILE__); // 此文件路径,请勿修改,将跳过此文件
define('THIS_PATH', dirname(THIS_FILE)); // 当前路径,可修改
define('Cover', 'new'); // 是否直接覆盖本文件(改为 true 不加单引号,危险),建议写入其他地址(相对于当前路径)
define('DS', DIRECTORY_SEPARATOR); // Linux改为'/',Windows为''
define('ICONV', 'UTF-8'); // 最终转换编码格式
function eachFile($path, $files = [])
{
 if (Cover !== true && $path == THIS_PATH . DS . Cover) {
 return $files;
 }
 if (preg_match("/[x7f-xff]/", $path)) {
 $path = iconv('UTF-8', 'GBK', $path);
 }
 if (is_file($path)) {
 $files[] = $path;
 return $files;
 }
 $list = scandir($path);
 foreach ($list as $k => $v) {
 if ($v !== '.' && $v !== '..') {
  $p = $path . DS . $v;
  // 路径转码GBK
  if (preg_match("/[x7f-xff]/", $p)) {
  $p = iconv('UTF-8', 'GBK', $p);
  }
  if (is_dir($p)) {
  $files = eachFile($p, $files);
  } else {
  $files[] = $p;
  }
 }
 }
 return $files;
}
$files = eachFile(THIS_PATH);
foreach ($files as $k => $v) {
 $ext = pathinfo($v, PATHINFO_EXTENSION);
 if (in_array($ext, ['txt', 'php', 'css', 'js', 'htm', 'html'])) {
 if ($v == THIS_FILE) continue;
 // 获取内容并转码
 $contents_before = file_get_contents($v);
 $oldIconv = mb_detect_encoding($contents_before, array('ASCII', 'GB2312', 'GBK', 'UTF-8', 'BIG5'));
 $contents_after = iconv($oldIconv, ICONV, $contents_before);
 if (Cover !== true) {
  // 判断新文件夹是否存在
  $newPath = str_replace(THIS_PATH, THIS_PATH . DS . Cover, $v);
  if (!file_exists(dirname($newPath))) {
  mkdir(dirname($newPath), 0755, true);
  }
  // 覆盖写入文件(不存在自动创建)
  file_put_contents($newPath, $contents_after);
 } else {
  file_put_contents($v, $contents_after);
 }
 // 输出
 echo "{$v} 已转换<hr>";
 } else {
 $newPath = str_replace(THIS_PATH, THIS_PATH . DS . Cover, $v);
 if (Cover !== true && !file_exists($newPath)) {
  if (!file_exists(dirname($newPath))) {
  mkdir(dirname($newPath), 0755, true);
  }
  copy($v, $newPath);
  echo "{$v} 复制文件到新路径 {$newPath}<hr>";
 }
 }
}

功能

  • 自定义文件夹

  • 跳过本文件(同一文件夹)及新文件夹(多次转码)

  • 文件格式限制

  • 转换文件编码到新文件夹(推荐)或本文件

  • 复制无需转码文件到新文件夹

  • 注意

  • 暂未在Linux上测试

  • 只能转码文本文件

  • 相关免费学习推荐:php编程(视频)

    热心网友 时间:2022-04-28 03:31

    1、运行控制台,程序->运行,输入CMD,点击确定进入DOS操作系统 快捷键windows键+R键。

    2、编写需要运行的java代码。

    3、切换运行目录到您存放java代码的目录!使用命令 cd 切换。

    4、解决错误提示:编码 GBK 的不可映射字符,使用命令:javac -encoding utf-8 helloword.java,编译成功。

    5、成功编译后,在tmp目录下能看到helloword.java文件编译后的.class字节码文件。使用命令【 java helloword 】,运行java程序。

    热心网友 时间:2022-04-28 04:49

    通常PHP中上传文件,如果文件名称有中文字符,上传之后的名称是无法写入到本地的,因为上传来的编码格式一般是UTF-8的格式,这种格式是无法给文件命名并且存储到操作系统磁盘。在写入之前需要将其转换为gbk的中文编码格式:

    $fileName=iconv("UTF-8", "gbk", $fileName);

    同样,从系统磁盘中读取文件获得的文件名称是gbk编码格式,这种格式php也是无法传递给其他页面,这时候就需要将它编码成UTF-8的格式:

    $fileName=iconv("gbk", "UTF-8", $fileName); 

    扩展资料

    很多人在使用过程中,发现字不够用,因为大家使用的主要是GB编码字库,此编码标准只收录了6763个常用汉字,而GB字库以外大量汉字,只能通过方正女娲补字软件拼字或其它造字程序补字。尽管补出的汉字在字形上满足需要。

    但在字体风格、大小、结构方面难以协调统一,而采用手工贴图的方式补字,更不雅观。进而言之,如果用户建立信息系统,或需要查询新闻、出版内容时,靠补字是无法实现的。方正开发的GBK字库,将极大地缓解缺字现象。

    从GB字库扩充到GBK字库,增加了1万4千多字。北大方正从1996年投入大量人力,开始做黑、宋、仿、楷GBK字库,并于1998年4月成为第一家通过国家权威部门组织的GBK字库鉴定的专业厂商。

    北大方正已将全部字体转换成GBK字库,共46款,其中18款字数达21003个,是拥有GBK字库款数最多的厂商。

    热心网友 时间:2022-04-28 06:23

    网址传递汉字,要用urlencode函数进行编码追问urlencode函数进行编码如何写,能贴出来吗,谢谢了,我现在的代码如楼下我发的那张图片

    追答kerword='.urlencode($shuname).'&.......

    热心网友 时间:2022-04-28 08:15

    nodepad++打开网页 全选网页内容,选择“格式”-》转为UTF-8 无BOM编码模式,保存

    热心网友 时间:2022-04-28 10:23

    使用iconv()函数转换字符的编码。

    例如:

    $str = '哈哈哈哈哈哈哈';
    iconv("UTF-8", "GB2312//IGNORE", $str);

    望采纳!

    追问

    代码如上截图,若使用iconv()函数转换字符的编码,能把这个写全一点吧,谢谢了

    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    宁德市有哪些区 福建宁德市有哪些区 宁德市有哪些商圈 安装项目错误: 项目文件不存在 (C:\Windows\SolidWorks\IM_20110-4 高压103低压98心跳104,医生初诊是脑梗,怎么治疗,吃什么药?饮食方面注 ... 最新版好玩的谐音梗网名210个 比较搞笑幽默的网名 德国猎梗FCI标准 “流泉百折玉琮琤”的出处是哪里 “细听犀谈座为倾”的出处是哪里 “西蜀东吴一世英”的出处是哪里 九年的车了,怎么注册滴滴打车 Java初学者的问题.提示警告:编码GBK的不可映射字符. 我的车是10年的,现在可以跑滴滴吗 day.java:5: 错: 编码 GBK 的不可映射字符 (0x88) System.out.println((i+1)+&quot;链?&quot;+&quot;链?&quot;+day[i]+&quot;澶?&quot;); 我的车超过8年了要怎么样才可以注册滴滴? notepad++编java显示不出中文,编码GBK的不可映射字符 申请滴滴顺风车有什么要求?驾龄要满几年才能注册? 探探发过来的有人暗恋你的信息是真的吗? 我用jd-gui反编译class文件,通过javac编译,提示错误: 编码GBK的不可映射字符 滴滴打车几年驾龄可以注册? 有人用探探暗恋我,她还知道我名字我想知道是谁发来的 EditPlus编译java时中文注释乱码-编码GBK的不可映射字符 我车已过八年了还可以开滴滴车吗? 探探发来的暗恋短信到底是怎么回事?真的假的? 车龄超过六年能不能注册滴滴? xp下Java警告:编码GBK的不可映射字符 手机怎么会收到探探发的短信? 几年的驾龄才能开滴滴快车? 那位大佬可以看看这是什么问题? 探探发信息有人将我设置为忘不了的人,是真的? 你好我的车 超过8年 怎么注册滴滴啊 谢谢帮忙? idea 用hg提交失败,编码出错 7年的车龄能申请滴滴打车吗 为什么用notepad编代码会出现编码 gbk 的不可映射字符 8年车子可以注册滴滴车吗? 为什么我写中文显示乱码而且还编码GBK的不可映射字符 四年的车可以加入滴滴吗? 用Java编程时,总是显示我的注释错误,说是编码gbk的不可映射字符,可以这些都在注释里为什么会错? 注册滴滴顺风车的车子规定是多少年以内吗? JAVA问题 文件类型是 ANSI 但还是提示 错误: 编码GBK的不可映射字符 我的车超过8年,能不能注册滴滴? 使用Sublime Text 3保存,javac编译时出现警告:编码GBK的不可映射字符 什么是企业画像?有什么作用? 微信共享位置能看到对方的位置吗? 北交所挂牌企业画像,81家企业均成立超9年,这些企业都分布在哪些地区? 微信能不能看到好友的地里位置? 如何注册元道经纬相机? 今夕何夕出自哪里 元道经纬相机拍完的照片已经传到电脑里,现在想用怎么改时间没有痕迹_百度问一问 “今夕何夕” 是什么意思?