NextCloud 17文本编辑器中文乱码解决方法

By | 2020年 8月 19日

和16的files texteditor问题一样,17的text同样是由于编码缺失造成的乱码,我们需要通过修改文件来填补编码缺失,进而完成中文的支持。在NextCloud 17网站根目录/apps/text/lib/Service找到ApiService.php并打开,定位到112行附近,找到以下代码:

return new FileDisplayResponse($file);

将这段代码修改为:

$fileContents=$file->getContent();
$encoding = mb_detect_encoding($fileContents . 'a', 'UTF-8,GB2312, GBK, WINDOWS-1252, ISO-8859-15, ISO-8859-1, ASCII', true);
if ($encoding === '') {
    $encoding = 'ISO-8859-15';
}
$fileContents = iconv($encoding, 'UTF-8', $fileContents);
$file->putContent($fileContents );
return new FileDisplayResponse($file);

修改完成后保存文件,强制刷新一下NextCloud 17的页面,打开TXT文本,中文已经能够正常显示了。

  为了方便日常办公,咸鱼剑在阿里云轻量主机上架设了NextCloud 16网盘系统,日常需要...

还有种思路是将text这个APP禁用,安装NextCloud 16里的files texteditor并按照NextCloud 16的解决方法完成编码的填补,也能达到目的,但目前咸鱼剑没做测试,具体可行性有待商榷。
至此,NextCloud 17文本编辑器的乱码问题成功解决。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注