linux 日志输出中文乱码_linux 服务器 java日志中文乱码?????

在将测试集群迁移到腾讯云后,遇到日志中文显示为乱码的问题。检查了Kafka消费格式、MySQL数据库编码及服务器默认编码。最终通过修改服务器的默认编码设置(/etc/profile)为`zh_CN.UTF-8`,并执行`source /etc/profile`使得配置生效,解决了日志中文乱码现象。
摘要由CSDN通过智能技术生成

公司测试集群迁往腾讯云,安装完flume和kafka后使用api消费topic,在应用日志中打印出来的日志中文部分全部是???????,数据存储写入mysql数据库后中文也是乱码,针对这个问题进行调整修复:

1、kafka消费的格式问题

设置kafka序列化和反序列化格式

properties.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

properties.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

经测试和该配置无关【注:并不表示在使用kafka api时不用指定序列化格式】,应用日志中中文部分仍然时乱码!

2、mysql数据库默认编码问题【因为在应用日志中也是乱码,所以不太可能是这种情况】

查看mysql数据库的编码格式是否时中文或utf8

命令:show variables like 'character%'

结果:

红色部分的值可以看出编码格式没有错误!

3、服务器本身的默认编码格式问题

因为是新的云服务器,所以才有了这个猜想,在网上也看到了相关帖子

通过命令查看服务器的编码设置:locale

可以看出都是英文的utf-8,所以打算调整该设置,但没找到直接修改这个设置的方法或命令,只有通过修改 /etc/profile文件进行调整【root用户】

vim vim /etc/profile

在文件最后添加 :export LANG="zh_CN.UTF-8"

保存退出后执行命令:source /etc/profile 使配置生效,在运行服务后乱码现象不见了

还有一种方式修改,但只是临时的,当关闭会话后还是会出现乱码,所以不建议:

直接执行:export LANG="zh_CN.UTF-8"

export LC_ALL="zh_CN.UTF-8"

在排查时我使用命令行kafka producter 产生消息,并使用consumer查看发现都没有出现乱码的现象,所以就有了服务器编码格式非中文的猜测,测试并打印出来编码格式

println(Charset.defaultCharset())

结果在本地和服务器上的结果是不一样的

本地:

服务器:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值