alpine jdk 中文乱码

2023-12-13 23:32
文章标签 jdk 中文 乱码 alpine

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

一、概述

使用alpine镜像构建了一个oracle jdk的镜像,运行java业务时,查看日志,显示中文乱码。

 

但是,基于Alpine Linux的Docker基础镜像的镜像文件很小,也有代价:

  • 把glibc替换为了musl libc,但是musl libc不支持国际化和本地化, 所以你想显示中文,还得安装glibc
  • 把bash替换为了ash,但是ash不支持数组特性, 但是,我们大多数已经写好的脚本,基本上是以bash为标准的。

实际上,基于Alpine Linux的Docker基础镜像的出现, 是为了给不需要国际化和本地化的那些人使用的,比如本来就使用英语的国家。中国人要使用,我们经常要打印中文日志, 这时候,默认的不支持中文的显示,所以,只会是乱码。要想不乱码,只能安装glibc并配置上中文支持。  具体办法:点我。

 

二、解决办法

中文问题

自己用alpine镜像,安装jdk和glibc,镜像比较大。在dockerhub上面,已经有人封装好了,直接拿来使用即可。

https://hub.docker.com/r/ringcentral/jdk

 

下载镜像

docker pull ringcentral/jdk

 

运行镜像,并编辑脚本

# docker run -it ringcentral/jdk /bin/sh
/ # vi 1.sh

内容如下:

#!/bin/bashecho "大家好"

 

执行脚本

/ # bash 1.sh
大家好
/ # 

 

时区问题

还是上一个镜像,查看时间

/ # date
Mon May 11 09:58:19 UTC 2020

发现时区是UTC,不是CST

 

需要在此镜像基础上,配置时区才行。

新建一个目录 /opt/alpine-chinese-timezone

./
└── dockerfile

 

dockerfile

FROM ringcentral/jdk
RUN apk add --no-cache tzdata && \cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \echo "Asia/Shanghai" > /etc/timezone && \apk del tzdata

 

生成镜像

cd /opt/alpine-chinese-timezone
docker build -t jdk-alpine-chinese-timezone .

 

运行镜像,查看时区

# docker run -it jdk-alpine-chinese-timezone /bin/sh
/ # date
Mon May 11 18:03:52 CST 2020
/ # 

发现时区正常了。

 

本文参考链接:

http://blog.fpliu.com/it/os/Unix-like/GNU-Linux/distribution/AlpineLinux

https://hub.docker.com/r/ringcentral/jdk

 

这篇关于alpine jdk 中文乱码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

vscode中文乱码问题,注释,终端,调试乱码一劳永逸版

忘记咋回事突然出现了乱码问题,很多方法都试了,注释乱码解决了,终端又乱码,调试窗口也乱码,最后经过本人不懈努力,终于全部解决了,现在分享给大家我的方法。 乱码的原因是各个地方用的编码格式不统一,所以把他们设成统一的utf8. 1.电脑的编码格式 开始-设置-时间和语言-语言和区域 管理语言设置-更改系统区域设置-勾选Bata版:使用utf8-确定-然后按指示重启 2.vscode

mac jdk 1.7 dmg 官方版

百度云下载 https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ   补充说明: 实际上oracle对于历史版本的jdk都有归档可以在官方网站上下载,只是需要注册个号就可以了。 地址如下: https://www.oracle.com/cn/java

解决Office Word不能切换中文输入

我们在使用WORD的时可能会经常碰到WORD中无法输入中文的情况。因为,虽然我们安装了搜狗输入法,但是到我们在WORD中使用搜狗的输入法的切换中英文的按键的时候会发现根本没有效果,无法将输入法切换成中文的。下面我就介绍一下如何在WORD中把搜狗输入法切换到中文。

配置Java(JDK)环境变量

一、配置JDK环境变量 将JDK-22压缩包加压缩到指定目录下面,本机路径是:C:\Program Files\Java(可以加压缩到自己的指定路径,记住这个路径,配置环境变量时候要使用)。 鼠标右键“此电脑”,点击“属性”,点击“高级系统设置”,然后进入“环境变量”。 点击“新建”,然后变量名填“JAVA_HOME”,变量值填自己的JDK的下载路径,我这里是“C:\\P

sqlite不支持中文排序,采用java排序

方式一 不支持含有重复字段进行排序 /*** sqlite不支持中文排序,改用java排序* 根据指定的对象属性字段,排序对象集合,顺序* @param list* @param field* @return*/public static List sortListByField(List<?> list,String field){List temp = new ArrayList(

docker学习系列(四)制作基础的base项目镜像--jdk+tomcat

前面已经完成了docker的安装以及使用,现在我们要将自己的javaweb项目与docker结合 1.1准备jdk+tomcat软件 ​​我下载了apache-tomcat-7.0.68.tar.gz和jdk-7u79-linux-x64.tar.gz,存储于Linux机器的本地目录/usr/ect/wt/下(利用xshell上传)。利用linux命令 tar -zxvf apache-tom

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决

word转PDF后mathtype公式乱码以及图片分辨率降低等一系列问题|完美解决 问题描述 最近在投一篇期刊论文,直接提交word文档,当时没有查看提交预览,一审审稿意见全是:公式乱码、公式乱码、乱码啊!!!是我大意了,第二次提交,我就决定将word文档转成PDF后再提交,避免再次出现公式乱码的问题。接着问题又来了,我利用‘文件/导出’或‘文件/另存为’的方式将word转成PDF后,发现公式

彻底解决win10系统Tomcat10控制台输出中文乱码

彻底解决Tomcat10控制台输出中文乱码 首先乱码问题的原因通俗的讲就是读的编码格式和写的解码格式不一致,比如最常见的两种中文编码UTF-8和GBK,UTF-8一个汉字占三个字节,GBK一个汉字占两个字节,所以当编码与解码格式不一致时,输出端当然无法识别这是啥,所以只能以乱码代替。 值得一提的是GBK不是国家标准编码,常用的国标有两,一个是GB2312,一个是GB18030 GB1