docker java 中文乱码_记一次ubuntu docker 镜像 java 中文乱码问题查找
java 测试代码
public class Test {
public static void main(String[] args) {
System.out.println(java.nio.charset.Charset.defaultCharset());
System.out.println(System.getProperty("file.encoding"));
System.out.println("这是一段中文");
}
}
Dockerfile
FROM ubuntu:14.04
# 时区
RUN ln -sf /usr/share/zoneinfo/Asia/Chongqing /etc/localtime && \
echo "Asia/Chongqing" > /etc/timezone && \
mkdir -p /etc/sysconfig/ && \
echo -e "ZONE="Asia/Chongqing"\nUTC=false\nRTC=false" > /etc/sysconfig/clock
# jdk/jre/server-jre
ENV JAVA_TYPE=server-jre
ENV JAVA_VERSION_MAJOR=8
ENV JAVA_VERSION_DETAIL=101
COPY "${JAVA_TYPE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_DETAIL}-linux-x64.tar.gz" /tmp/
RUN tar -zxf /tmp/${JAVA_TYPE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_DETAIL}-linux-x64.tar.gz -C /opt/
RUN rm /tmp/${JAVA_TYPE}-${JAVA_VERSION_MAJOR}u${JAVA_VERSION_DETAIL}-linux-x64.tar.gz
RUN ln -s /opt/jdk1.${JAVA_VERSION_MAJOR}.0_${JAVA_VERSION_DETAIL} /opt/${JAVA_TYPE}${JAVA_VERSION_MAJOR}
RUN ls /opt/${JAVA_TYPE}${JAVA_VERSION_MAJOR}
RUN update-alternatives --install /usr/bin/java java /opt/${JAVA_TYPE}${JAVA_VERSION_MAJOR}/bin/java 100
RUN update-alternatives --install /usr/bin/javac javac /opt/${JAVA_TYPE}${JAVA_VERSION_MAJOR}/bin/javac 100
ENV JAVA_HOME=/opt/${JAVA_TYPE}${JAVA_VERSION_MAJOR}
docker 容器内测试
测试c.utf-8
root@e23dde2b15f3:/tmp# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
root@e23dde2b15f3:/tmp# vi Test.java
root@e23dde2b15f3:/tmp# javac Test.java
root@e23dde2b15f3:/tmp# java Test
US-ASCII
ANSI_X3.4-1968
root@e23dde2b15f3:/tmp# export LANG=C.UTF-8
root@e23dde2b15f3:/tmp# export LANG=C.UTF-8
root@e23dde2b15f3:/tmp# locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=
root@bed9245d00ee:/tmp# java Test
UTF-8
UTF-8
测试 en_US.UTF-8
root@50563c7d7aea:/# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
root@50563c7d7aea:/# vi Test.java
root@50563c7d7aea:/# javac Test.java
root@50563c7d7aea:/# java Test
US-ASCII
ANSI_X3.4-1968
root@50563c7d7aea:/# export LANG=en_US.UTF-8
root@50563c7d7aea:/# locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@50563c7d7aea:/# java Test
US-ASCII
ANSI_X3.4-1968
root@50563c7d7aea:/# locale-gen en_US.UTF-8
Generating locales...
en_US.UTF-8... done
Generation complete.
root@50563c7d7aea:/# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@50563c7d7aea:/# java Test
UTF-8
UTF-8
locale
root@c44b590a4d16:/# locale -a
C
C.UTF-8
POSIX
root@c44b590a4d16:/# vi Test.java
# 直接编译java时 报错
root@c44b590a4d16:/# export LANG=C.UTF-8
root@c44b590a4d16:/# javac Test.java
root@c44b590a4d16:/# java Test
UTF-8
UTF-8
这是一段中文
root@c44b590a4d16:/# export LANG=en_US.UTF-8
root@c44b590a4d16:/# javac Test.java
# 这时候编译java会报错
root@c44b590a4d16:/# java Test
US-ASCII
ANSI_X3.4-1968
??????
root@c44b590a4d16:/# locale-gen en_US.UTF-8
Generating locales...
en_US.UTF-8... done
Generation complete.
root@c44b590a4d16:/# locale -a
C
C.UTF-8
en_US.utf8
POSIX
root@c44b590a4d16:/# locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@c44b590a4d16:/# java Test
UTF-8
UTF-8
这是一段中文
问题分析: 在默认情况下, locale 只有C, C.UTF-8, POSIX, 所以 当export LANG=C.UTF-8 打印为 UTF-8, 中文显示正常 当export LANG=en_US.UTF-8 打印为 US-ASCII, ANSI_X3.4-1968, 中文显示不正常 执行 locale-get en_US.UTF-8 之后 打印为 UTF-8, 中文显示正常
docker java 中文乱码_记一次ubuntu docker 镜像 java 中文乱码问题查找相关推荐
- java环境搭建_记一次阿里云服务器Java相关环境搭建的过程
Java在Web开发中有着不可或缺的地位,在我们通常开发中,为了使编写的demo或者项目能够让更多的朋友看到,我们通常会将项目打包发布到网络中的服务器上,以便让更多的人访问到我们的劳动成果上.想着我们 ...
- mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析
问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...
- oracle查看数据库是否恢复成功_记一次解决docker下oracle数据库故障事例
一.问题背景: 某个项目的线上环境oracle数据库挂了,同事急匆匆来找我救火.我简单咨询了一些基本情况:线上环境,docker部署,已正常运行半年.由于宿主机的根目录硬盘空间不够,运维的同事想把or ...
- .net千万级数据导出_记一次解决docker下oracle数据库故障事例
一.问题背景: 某个项目的线上环境oracle数据库挂了,同事急匆匆来找我救火.我简单咨询了一些基本情况:线上环境,docker部署,已正常运行半年.由于宿主机的根目录硬盘空间不够,运维的同事想把or ...
- docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库
1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...
- docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...
编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...
- java hashmap用法_备战金九银十:Java核心技术面试题100+,助你搞定面试官
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...
- 疯狂java讲义 光盘_书单丨24岁的Java,到底有多美?
Java诞生二十多年来尽管有坎坷有颠簸 但仍在计算核心层面占有重要地位 且多年来达成的辉煌仍无人能及 跟随本书单走进Java,一同领略Java之美 NO. 1 <码出高效:Java开发手册> ...
- java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用
在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...
- java框架核心技术_你必须掌握的 21 个 Java 核心技术!(干货)
点击上方"java进阶架构师",选择右上角"置顶公众号" 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘 ...
最新文章
- 性能测试---商场模型分析
- 并发编程中的GIL锁(全局解释器锁)自己理解的他为啥存在
- 模式识别之基础---使用纹理滤波器分割图像
- Python之fastai:fastai库的简介、安装、使用方法之详细攻略
- 这代码她不美吗?——试题 基础练习 十六进制转八进制
- 转角遇上Volcano,看HPC如何应用在气象行业
- [MVC.NET] Asp.Net MVC3 简单入门第一季
- DHCP之二 DHCP的中继代理
- mysql数据库中 pri_mysql数据库part2
- 游戏筑基开发之初识指针
- csv文件导入后台乱码_win7系统下excel打开csv文件出现乱码怎么修复
- 亲测可用企业级自动发卡平台PHP系统源码
- 华为ensp路由器静态路由配置
- 爬取搜狗微信文章笔记2
- c++打印心形_c语言如何打印心
- webview造成窗体泄漏
- 《和码中文》第一册词组(共25课)
- 解析无所不能的正则表达式
- JavaWeb 服务器与客户端储存
- 【图像去噪】基于matlab GUI均值+中值滤波图像去噪(含PNSR)【含Matlab源码 372期】
热门文章
- activity 和service通信,调用service方法
- web 开发之js---js 实现文本高亮
- Android 的 Recovery 模式分析
- OMEA Pro,刚刚荣获15届Jolt大奖,综合RSS阅读,邮件、任务等管理的IIM(智能信息管理)...
- WebView的爬坑之路
- 5 重启应用_5种方法教你解除 iPhone在流量环境下,无法下载超过150M的限制!
- 【NCRE】——Winform窗体控件随窗体大小而变化
- power系列服务器问题PA模板,与 Power BI 报表服务器集成
- 上海财经大学计算机考研好不好,五所不错的财经类大学,不歧视,不压分,你会考虑吗?...
- 分布式压缩感知 matlab程序,BCS_CODE 贝叶斯压缩感知以及分布式 的算法实现,很好的范例 matlab 238万源代码下载- www.pudn.com...