我们在使用编辑器保存TXT文本时,默认使用的是ANSI、GB2312或者GBK编码,而NextCloud 16的文本编辑器默认使用的是UTF-8编码。页面在显示文档内容时因为缺少了中文编码的支持,所以出现了乱码的情况,影响了我们的正常使用。庆幸的是,这个问题是可以通过修改文本编辑器的配置文件解决。
在NextCloud 16网站根目录/apps/files_texteditor/lib/Controller
找到FileHandlingController.php
并打开,在101行附近可以找到以下代码:
$encoding = mb_detect_encoding($fileContents . 'a', 'UTF-8, WINDOWS-1252, ISO-8859-15, ISO-8859-1, ASCII', true);
这段代码的作用就是配置NextCloud 16文本编辑器的编码类型,可以看到文本编辑器使用的是UTF-8、WINDOWS-1512、ISO-8859-15、ISO-8859-1,ASCII这几种编码,而这几种编码对中文都是极度不友好的...想要正常显示中文文本,我们要做的就是将支持中文的编码类型写入这行配置中,咸鱼剑在这里贴上自己修改的配置代码供大家参考:
$encoding= mb_detect_encoding($fileContents. 'a', 'UTF-8, GB2312, GBK, WINDOWS-1252, ISO-8859-15, ISO-8859-1, ASCII', true);
修改完成后保存配置文件,再强制刷新一下NextCloud 16的页面,打开TXT文本时,你会发现文本中的中文已经可以正常显示了。
至此,NextCloud 16文本编辑器显示中文乱码的问题得到解决。