当前位置: 首页 > 后端技术 > PHP

centos使用chrome-cli、chromium或wkhtmltoimage截图时出现的中文字符乱码的解决方案

时间:2023-03-29 14:11:02 PHP

centos使用chrome-cli、chromium或wkhtmltoimage截图时出现汉字乱码的解决方法/chromium对抓取的页面进行截图并上传到云服务。因为composer依赖包管理,所以使用chrome-php核心代码示例://navigate$navigation=$page->navigate('https://www.baidu.com');//等待页面加载$navigation->waitForNavigation();//截图$screenshot=$page->screenshot(['format'=>'jpeg',//默认为'png'-可能的值:'png','jpeg','quality'=>80//仅当格式为“jpeg”时-默认100]);//保存截图$screenshot->saveToFile('/some/place/file.jpg');原来是截图不对,全是汉字乱码:我后来提了一个issue,按照对方给的解决方案,地址没有得到有效解决。后来换了各种系统环境,包括换了中文支持,但是还是一样,只有在我自己的mac上才正常。所以我猜测应该是字体的问题,于是尝试了下面的解决方法,终于可以正常显示了:如果执行下面的命令出现permissiondenied,使用sudo命令执行。1、查看fc-list中是否有中文字体。一般不存在,否则不会出现乱码。2、查看是否支持ttmkfdir,如果不支持,则安装:yuminstall-yttmkfdir3.centos7系统,创建字体目录,mkdir/usr/share/fonts/chinese4。上传本地字体文件,比如对应mac的任何ttf字体文件。5、将字体文件复制到/usr/share/fonts/chinese,执行chmod-R755/usr/share/fonts/chinese6。执行ttmkfdir-e/usr/share/X11/fonts/encodings/encodings.dir7。编辑/etc/fonts/fonts.conf,添加以下部分:8.运行fc-cache和fc-cache-64(如果有的话))9.运行fc-list,看看你刚才安装的字体是否存在。10.再次运行程序脚本,看截图是否包含正常的汉字。