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 中文乱码问题查找相关推荐

  1. java环境搭建_记一次阿里云服务器Java相关环境搭建的过程

    Java在Web开发中有着不可或缺的地位,在我们通常开发中,为了使编写的demo或者项目能够让更多的朋友看到,我们通常会将项目打包发布到网络中的服务器上,以便让更多的人访问到我们的劳动成果上.想着我们 ...

  2. mongodb java 日志分析_记一次log4j与mongodb集成引发的问题分析

    问题背景 对项目中的关键应用调用链日志需要结构化得统一吐出到mongodb中,同时项目中日志输出使用log4j,故准备使用log4j的Appender直接集成mongodb的输出,同时mongodb采 ...

  3. oracle查看数据库是否恢复成功_记一次解决docker下oracle数据库故障事例

    一.问题背景: 某个项目的线上环境oracle数据库挂了,同事急匆匆来找我救火.我简单咨询了一些基本情况:线上环境,docker部署,已正常运行半年.由于宿主机的根目录硬盘空间不够,运维的同事想把or ...

  4. .net千万级数据导出_记一次解决docker下oracle数据库故障事例

    一.问题背景: 某个项目的线上环境oracle数据库挂了,同事急匆匆来找我救火.我简单咨询了一些基本情况:线上环境,docker部署,已正常运行半年.由于宿主机的根目录硬盘空间不够,运维的同事想把or ...

  5. docker mysql数据库初始化_如何在Mysql的Docker容器启动时初始化数据库

    1.前言 Docker在开发中使用的越来越多了,最近搞了一个Spring Boot应用,为了方便部署将Mysql也放在Docker中运行.那么怎么初始化 SQL脚本以及数据呢? 我这里有两个传统方案. ...

  6. docker容器 eureka 集成_微服务:基于 Docker 的微服务架构之分布式企业级实践参考...

    编者按:本文分享自CSDN技术博客,作者为 FlyWine,所有权归原著者.若有不妥,联系本头条号以做必要处理. 目录 Microservice 和 Docker 服务发现模式 客户端发现模式 Net ...

  7. java hashmap用法_备战金九银十:Java核心技术面试题100+,助你搞定面试官

    一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理. 这篇文章梳 ...

  8. 疯狂java讲义 光盘_书单丨24岁的Java,到底有多美?

    Java诞生二十多年来尽管有坎坷有颠簸 但仍在计算核心层面占有重要地位 且多年来达成的辉煌仍无人能及 跟随本书单走进Java,一同领略Java之美 NO. 1 <码出高效:Java开发手册> ...

  9. java 清空控制台_利用原生库和JNI(Java原生接口)实现H2数据库漏洞利用

    在H2数据库引擎中获取代码执行权限的技术早已是众所周知,但有个要求就是H2能够动态编译Java代码.而本文将向大家展示以前没有公开过的利用H2的方法,并且无需使用Java编译器,即通过原生库和JNI( ...

  10. java框架核心技术_你必须掌握的 21 个 Java 核心技术!(干货)

    点击上方"java进阶架构师",选择右上角"置顶公众号" 20大进阶架构专题每日送达 51闲来无事,师长一向不(没)喜(有)欢(钱)凑热闹,倒不如趁着这时候复盘 ...

最新文章

  1. 性能测试---商场模型分析
  2. 并发编程中的GIL锁(全局解释器锁)自己理解的他为啥存在
  3. 模式识别之基础---使用纹理滤波器分割图像
  4. Python之fastai:fastai库的简介、安装、使用方法之详细攻略
  5. 这代码她不美吗?——试题 基础练习 十六进制转八进制
  6. 转角遇上Volcano,看HPC如何应用在气象行业
  7. [MVC.NET] Asp.Net MVC3 简单入门第一季
  8. DHCP之二 DHCP的中继代理
  9. mysql数据库中 pri_mysql数据库part2
  10. 游戏筑基开发之初识指针
  11. csv文件导入后台乱码_win7系统下excel打开csv文件出现乱码怎么修复
  12. 亲测可用企业级自动发卡平台PHP系统源码
  13. 华为ensp路由器静态路由配置
  14. 爬取搜狗微信文章笔记2
  15. c++打印心形_c语言如何打印心
  16. webview造成窗体泄漏
  17. 《和码中文》第一册词组(共25课)
  18. 解析无所不能的正则表达式
  19. JavaWeb 服务器与客户端储存
  20. 【图像去噪】基于matlab GUI均值+中值滤波图像去噪(含PNSR)【含Matlab源码 372期】

热门文章

  1. activity 和service通信,调用service方法
  2. web 开发之js---js 实现文本高亮
  3. Android 的 Recovery 模式分析
  4. OMEA Pro,刚刚荣获15届Jolt大奖,综合RSS阅读,邮件、任务等管理的IIM(智能信息管理)...
  5. WebView的爬坑之路
  6. 5 重启应用_5种方法教你解除 iPhone在流量环境下,无法下载超过150M的限制!
  7. 【NCRE】——Winform窗体控件随窗体大小而变化
  8. power系列服务器问题PA模板,与 Power BI 报表服务器集成
  9. 上海财经大学计算机考研好不好,五所不错的财经类大学,不歧视,不压分,你会考虑吗?...
  10. 分布式压缩感知 matlab程序,BCS_CODE 贝叶斯压缩感知以及分布式 的算法实现,很好的范例 matlab 238万源代码下载- www.pudn.com...