[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
个人理解是宿主程序的解析问题。

举个例子
*.cmd, *.bat 的宿主程序是cmd.exe,当简体系统下编写的 .bat 文件(ascii编码)放在繁体系统下面运行时,中文会乱码。
.vbs , .vbe  的宿主程序是 cscript.exe,当脚本编码为 ULE 时,简体、繁体系统 cmd 执行  cscript.exe 时,均不会乱码。

对 Node.js 不熟,猜想 Node.js 宿主程序不是 cmd.exe 吧,中文乱码因该不是 cmd.exe 的问题。
建议统一 .js 文件编码为 utf-8 试试。
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 6# CrLf

我对PHP比较熟一点,一般是这样解决乱码问题:
1.  .php 文件统一使用使用无 BOM 的 UTF-8 编码。
2. 在输出的头一行加上
  1. <?php header("Content-type: text/html; charset=utf-8"); ?>
复制代码
3. html 文件 head 标签 加上
  1. <meta charset="utf-8" />
复制代码
4. 文件系统输出列表时,中文路径
  1. // 中文化支持(输出中文文件路径时)
  2. function utf8_cn($str) {
  3.   //return iconv('GB2312', 'UTF-8', $str);
  4.   return siconv($str, 'UTF-8', 'GB2312');
  5. }
  6. // 较安全的转码函数
  7. function siconv($str, $out_charset, $in_charset) {
  8.   if (strtoupper($out_charset) != strtoupper($in_charset)) {
  9.     if (function_exists('iconv') && (@$outstr = iconv("$in_charset//IGNORE", "$out_charset//IGNORE", $str))) {
  10.       return $outstr;
  11.     } elseif (function_exists('mb_convert_encoding') && (@$outstr = mb_convert_encoding($str, $out_charset, $in_charset))) {
  12.       return $outstr;
  13.     }
  14.   }
  15.   return $str;
  16. }
复制代码
1

评分人数

    • CrLf: 感谢关注技术 + 1
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表