使用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

相关文章

Python使用PIL库将PNG图片转换为ICO图标的示例代码

《Python使用PIL库将PNG图片转换为ICO图标的示例代码》在软件开发和网站设计中,ICO图标是一种常用的图像格式,特别适用于应用程序图标、网页收藏夹图标等场景,本文将介绍如何使用Python的... 目录引言准备工作代码解析实践操作结果展示结语引言在软件开发和网站设计中,ICO图标是一种常用的图像

使用Java发送邮件到QQ邮箱的完整指南

《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

MyBatis与其使用方法示例详解

《MyBatis与其使用方法示例详解》MyBatis是一个支持自定义SQL的持久层框架,通过XML文件实现SQL配置和数据映射,简化了JDBC代码的编写,本文给大家介绍MyBatis与其使用方法讲解,... 目录ORM缺优分析MyBATisMyBatis的工作流程MyBatis的基本使用环境准备MyBati

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

使用Python实现表格字段智能去重

《使用Python实现表格字段智能去重》在数据分析和处理过程中,数据清洗是一个至关重要的步骤,其中字段去重是一个常见且关键的任务,下面我们看看如何使用Python进行表格字段智能去重吧... 目录一、引言二、数据重复问题的常见场景与影响三、python在数据清洗中的优势四、基于Python的表格字段智能去重

使用Apache POI在Java中实现Excel单元格的合并

《使用ApachePOI在Java中实现Excel单元格的合并》在日常工作中,Excel是一个不可或缺的工具,尤其是在处理大量数据时,本文将介绍如何使用ApachePOI库在Java中实现Excel... 目录工具类介绍工具类代码调用示例依赖配置总结在日常工作中,Excel 是一个不可或缺的工http://

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

Java之并行流(Parallel Stream)使用详解

《Java之并行流(ParallelStream)使用详解》Java并行流(ParallelStream)通过多线程并行处理集合数据,利用Fork/Join框架加速计算,适用于大规模数据集和计算密集... 目录Java并行流(Parallel Stream)1. 核心概念与原理2. 创建并行流的方式3. 适

Oracle登录时忘记用户名或密码该如何解决

《Oracle登录时忘记用户名或密码该如何解决》:本文主要介绍如何在Oracle12c中忘记用户名和密码时找回或重置用户账户信息,文中通过代码介绍的非常详细,对同样遇到这个问题的同学具有一定的参... 目录一、忘记账户:二、忘记密码:三、详细情况情况 1:1.1. 登录到数据库1.2. 查看当前用户信息1.

SpringBoot集成图片验证码框架easy-captcha的详细过程

《SpringBoot集成图片验证码框架easy-captcha的详细过程》本文介绍了如何将Easy-Captcha框架集成到SpringBoot项目中,实现图片验证码功能,Easy-Captcha是... 目录SpringBoot集成图片验证码框架easy-captcha一、引言二、依赖三、代码1. Ea