和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文本编辑器的乱码问题成功解决。