`
vase
  • 浏览: 418889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于R在Linux服务器上生成图片中文乱码原因及解决办法

阅读更多

乱码原因:

    主要是因为Linux没有对应字体库导致。Linux本身自带字体库(具体有啥,暂不深究),但不包含windows上的,尤其像“微软雅 黑”这样的字体库(主因应该是版权问题);所以在Windows开发R程序,在设置字体后(如“宋体”、“黑体”、“微软雅黑”),在Linux上是无法 显示的。

 

解决办法:

    以CentOS为例,其他版本请自行对照相应路径

1. 在/usr/share/fonts下新建一个微软字体文件夹,如msfonts

2. 将windows系统盘下fonts中的MSYHBD.TTF 、MSYH.TTF 、simhei.ttf 、simsun.ttc 拷贝到linux上步骤1新建的文件夹/usr/share/fonts/msfonts下

3. 修改/etc/fonts/fonts.conf,在<dir>/usr/share/fonts</dir>后增加<dir>/usr/share/fonts/msfonts</dir>,如下

<!-- Font directory list -->
    <dir>/usr/share/fonts</dir>
    <dir>/usr/share/fonts/msfonts</dir>
    <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/OTF</dir>
    <dir>~/.fonts</dir>

 

4. 执行fc-cache -f 使得新加的字体立即生效。

5. 修改R程序,在加载Cairo后,设置字体

# 加载Cairo库
library(Cairo)
# 设置字体
CairoFonts(regular = "宋体:style=Regular", bold="微软雅黑:style=Regular")
# 其他画图代码,balabala...

 经测试,只设置第一个参数regular 不起作用,使用的是第二个参数bold的设置,原因不明;其中冒号“:”分隔符后边的style表示使用的样式,Regular正常 Bold粗体

 

关于字体大小是在CairoPNG函数中的pointsize参数设置

CairoPNG(filename = "Rplot.png", width = 480, height = 480, pointsize = 12, bg = "white", res = NA, ...)

 

最后附上Cairo API。

 

另外再补充一句:关于windows上使用UTF-8字符集乱码问题,如果系统默认是GBK字符集,这个问题应该 无解,原因是R运行时环境无法指定字符集。除非用icon函数进行转码,但是这样写的代码没法跨平台执行了。至于更改windows操作系统字符集,或许可以,未测;若有人成功,请给出方案

分享到:
评论

相关推荐

    jfreechart部署linux服务器生成图片乱码解决方案

    NULL 博文链接:https://liujun58love.iteye.com/blog/1711390

    jfreechart Linux服务器图片中文乱码解决方案(亲测,已解决多台服务器)

    终极解决方案最简单,最直接的,已解决多台服务器java程序应用jfreechart生成图片,中文乱码问题

    处理linux java图片中文字显示方块乱码

    java——图片字体显示方块问题处理 /usr/java/jdk1.7.0_80/jre/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf /usr/java/jdk1.7.0_80/lib/fonts/fallback msyhbd.ttf msyh.ttf wqy-microhei.ttf

    合成图片上用 java Graphics2d 写字 本地展示正常 linux 服务器乱码 解决方案-附件资源

    合成图片上用 java Graphics2d 写字 本地展示正常 linux 服务器乱码 解决方案-附件资源

    Linux中文字体包语言包

    Linux部署的Java应用生成图片会出现乱码,将文件解压至 /usr/share/fonts 目录下,依次执行 mkfontscale 、mkfontdir 、fc-cache 使字体生效,如果不生效则重启服务器或执行source /etc/profile 如果提示没有...

    KODExplorer 芒果云-资源管理器

    - 图片缩略图生成:小于5k则不生成(直接输出) - 加载文件列表改为异步方式,数据返回采用回调函数方式。增强体验 - 选中优化,文件&文件夹重命名、文件&文件夹新建 后自动选中。(f5增加回调。); - 选中保持,...

    FengCms 网站内容管理系统 v1.32 Beta.zip

    4、新增 web.config 文件,用于 windows 2008 以及以上系统的伪静态配置(需要服务器支持)我们建议系统运行于linux服务器上。 FengCms系统介绍 FengCms系统是由地方网络工作室倾力打造的一套PHP MYSQL的CMS,和...

    JspRun!社区论坛系统 v6.0.0 build 20110516 GBK 安装版.zip

    2、 修复了:在某些运行环境中(例如在 LINUX下的 Weblogic10.3 服务器上)用户无法正常上传附件的问题 3、 修复了:审核主题和审核回复操作中可能存在的安全隐患。 4、 修复了:隐藏版块出现在统计-版块排行中的...

    JspRun!社区论坛系统 v6.0.0 build 20110516 UTF-8 源码版.zip

    2、 修复了:在某些运行环境中(例如在 LINUX下的 Weblogic10.3 服务器上)用户无法正常上传附件的问题 3、 修复了:审核主题和审核回复操作中可能存在的安全隐患。 4、 修复了:隐藏版块出现在统计-版块排行中的...

    JspRun!社区论坛系统 v6.0.0 build 20110516 GBK 源码版.zip

    2、 修复了:在某些运行环境中(例如在 LINUX下的 Weblogic10.3 服务器上)用户无法正常上传附件的问题 3、 修复了:审核主题和审核回复操作中可能存在的安全隐患。 4、 修复了:隐藏版块出现在统计-版块排行中的...

    JspRun!社区论坛系统 v6.0.0 build 20110516 UTF-8 安装版.zip

    2、 修复了:在某些运行环境中(例如在 LINUX下的 Weblogic10.3 服务器上)用户无法正常上传附件的问题 3、 修复了:审核主题和审核回复操作中可能存在的安全隐患。 4、 修复了:隐藏版块出现在统计-版块排行中的...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    易语言程序免安装版下载

     支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...

    KingCMS企业版(PHP)2009 正式版 V6.0.813.rar

    修正安装程序计算时区错误的问题,安装时自动设置服务器所在时区 修改安装时的默认数据库为Sqlite 修正kc_icon函数的图片链接提示无法显示的Bug 修正一些模板中的笔误 删除文章后,自动删除已生成的...

    PHP程序开发范例宝典III

    实例033 根据数据表结构自动生成数据录入页面 45 实例034 投票系统中单选按钮与复选框的应用 47 2.3 下拉列表的应用 50 实例035 在下拉菜单中显示数据表某列的字段值 50 实例036 在下拉菜单中显示数组中的...

    PHP开发实战1200例源码

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则...

    网址网站导航整站源码

    *解决个别linux环境下,网址导航首页无法生成的问题 *修复删除所有数据后“查看所有分类”不能显示的问题 V1.12 升级补丁包 (2009年7月26日发布) *优化静态页生成功能,提高生成速度,解决php5环境下生成...

    el-admin后台管理系统-其他

    2、修复EncryptUtils 优化在linux中,存在解密乱码的情况 3、修复禁用用户后用户还可以操作的Bug 4、修复算数型验证码生成浮点型结果,导致前端输入整形数据匹配错误 5、修复菜单分配后菜单数据丢失的问题,修复缓存...

Global site tag (gtag.js) - Google Analytics