LayTp交流一群:843093362 LayTp交流一群 发表新帖

Crud插件执行migrate时,在Windows系统下可能需要使用iconv转换字符集

提交BUG 1
colisys
2023-10-13 17:52:11

版本:2.1
出问题的行:plugin\curd\library\Curd.php:315

此行使用exec执行迁移命令,如果是Windows下,可能产生2个问题:
1.如果未找到php这个命令的话,CMD会报错(GB2312),且$output这个数组会出现两个消息
2.调用TP的json()方法(\think\response\Json)实际调用json_encode(),这个函数只能处理UTF8,直接输出GB2312的数据会报Malformed UTF-8 characters, possibly incorrectly encoded

期望的修复:

  1. // line: 316
  2. foreach ($output as $key => $value) {
  3. $output[$key] = iconv('gb2312', 'utf-8', $value);
  4. }
  5. if ($resCode) {
  6. $this->setError(implode('', $output));
  7. unlink($this->migrationParam['fileName']);
  8. return false;
  9. }
回帖
  • JunStar
    2024-06-06 11:41:32

    感谢提交问题,已经修复