使用Graphics2D 绘制图片时中文乱码问题的解决

2023-12-01 22:48

本文主要是介绍使用Graphics2D 绘制图片时中文乱码问题的解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

       

     今天偶然发现,使用Graphics2D绘制的图片中文部分全部不能正常显示,而是显示成一个个口口口。如下图:

之前都是好好的,该部分代码未曾作过修改。怎么会变成这样了呢?

头一回遇到这种问题,一时无辙。只好上网搜索。经过排查,联想到前段时间将服务器更换为阿里云,终于明白一二。

原来我新换的服务器linux系统里没有宋体(simsun.ttf)这种字体,所有画图时所有中文都用方框来代替了。

明白的缘由,那么就是把字体补齐。我先到我电脑上把字体找到,windows电脑字体一般位于C:\Windows\Fonts中,由于里边字体太多,我用了快速检索,注意,windows上标示为simsun.ttc,参照下图:

找到以后,我把它复制到桌面,并把它重命名为simsun.ttf,也可复制到linux服务器后再重命名。

下面说说拷贝到linux服务器上走过的弯路,让后面的人有所警示或少走弯路。起初我把文件拷贝到/usr/local/java/jdk/jre/lib/fonts/(注意:这里要换成自己jdk真实的目录),然后重启服务器,执行,发现没效果。

后面参照这位大师https://blog.csdn.net/sinat_34797000/article/details/101107322的做法,终于奏效。

下面说说过程,进入/usr/share/fonts目录,里边原本只有dejavu和 urw-base35文件夹,里面虽然有不少字体库,然而都是西文的,因此在fonts目录下创建一个中文字体库chinese,把simsun.ttf拷贝到chinese目录下,并赋予执行权限 chmod 777 simsun.ttc

在 /usr/share/fonts/chinese 目录下执行 fc-cache -fv,安装字体到系统
执行fc-list查看字体是否安装成功,参照下图:

安装好后,重启tomcat服务器,再次执行,中文终于显示正常了。

这篇关于使用Graphics2D 绘制图片时中文乱码问题的解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/442975

相关文章

C#实现将Excel表格转换为图片(JPG/ PNG)

《C#实现将Excel表格转换为图片(JPG/PNG)》Excel表格可能会因为不同设备或字体缺失等问题,导致格式错乱或数据显示异常,转换为图片后,能确保数据的排版等保持一致,下面我们看看如何使用C... 目录通过C# 转换Excel工作表到图片通过C# 转换指定单元格区域到图片知识扩展C# 将 Excel

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Java将DOCX文档解析为Markdown文档的代码实现

《使用Java将DOCX文档解析为Markdown文档的代码实现》在现代文档处理中,Markdown(MD)因其简洁的语法和良好的可读性,逐渐成为开发者、技术写作者和内容创作者的首选格式,然而,许多文... 目录引言1. 工具和库介绍2. 安装依赖库3. 使用Apache POI解析DOCX文档4. 将解析

Qt中QUndoView控件的具体使用

《Qt中QUndoView控件的具体使用》QUndoView是Qt框架中用于可视化显示QUndoStack内容的控件,本文主要介绍了Qt中QUndoView控件的具体使用,具有一定的参考价值,感兴趣的... 目录引言一、QUndoView 的用途二、工作原理三、 如何与 QUnDOStack 配合使用四、自

C++使用printf语句实现进制转换的示例代码

《C++使用printf语句实现进制转换的示例代码》在C语言中,printf函数可以直接实现部分进制转换功能,通过格式说明符(formatspecifier)快速输出不同进制的数值,下面给大家分享C+... 目录一、printf 原生支持的进制转换1. 十进制、八进制、十六进制转换2. 显示进制前缀3. 指

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

kali linux 无法登录root的问题及解决方法

《kalilinux无法登录root的问题及解决方法》:本文主要介绍kalilinux无法登录root的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录kali linux 无法登录root1、问题描述1.1、本地登录root1.2、ssh远程登录root2、