日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java虚拟机(JVM)默认字符集详解

發布時間:2023/12/10 java 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java虚拟机(JVM)默认字符集详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Java中對字符串等進行轉換字節數組時, 需要根據字符集編碼來進行轉換, 當不顯示的指定字符集編碼時(如: "測試".getBytes()), 會使用Charset.defaultCharset()獲取到的字符集編碼進行轉換!

相關代碼如下:

?

?上面的代碼可以看出, 在JVM中defaultCharset()是在初始化階段被調用, 且只會初始化一次, 首先會取file.encoding指定的字符集, 如果取不到則使用系統默認字符集(如: windows下為GBK), 然后通過

取到的字符集名稱(csn)去獲取Charset對象, 如果能獲取到則將其設為defaultCharset, 如果取不到則將defaultCharset設置為UTF-8字符集,?defaultCharset一旦被初始化后, 在JVM之后的運行過程中

就無法再進行更改, 比如在JVM啟動后在程序中使用properties.setProperty("file.encoding","UTF-8");也不會改變defaultCharset的值~~~

?如果想指定defaultCharset的值, 則可以通過JVM啟動參數(-Dfile.encoding="UTF-8")來顯示的指定此JVM的字符集!!!

拓展內容:

Charset name屬性的命名規范如下:

  • 大寫字母 'A' 到 'Z'('\u0041'?到?'\u005a'),
  • 小寫字母 'a' 到 'z'('=pos; ?到 ?' apos;),
  • 數字 '0' 到 '9'('\u0030'? 到 ?'\u0039'),
  • 短劃線字符 '-'('\u002d',連詞符號),
  • 句點字符 '.'('\u002e',句點),
  • 冒號字符 ':'('\u003a',冒號),和
  • 下劃線字符 '_'('\u005f',下劃線)。

Charset 名稱必須以字母或數字開頭。空字符串不是合法的 charset 名稱。Charset 名稱是大小寫不敏感的,也就是當比較 charset 名稱時總是忽略大小寫。

每個 charset 有一個規范名稱,也可能有一個或多個別名。規范名稱由此類的 name 方法返回。根據約定,規范名稱通常是大寫的。charset 的別名由 aliases 方法返回。?

?

一些 charset 有一個歷史名稱,定義這個名稱是為了和以前版本的 Java 平臺兼容。charset 的歷史名稱既可以是它的規范名稱,也可以是它的某個別名。歷史名稱由 InputStreamReader 和 OutputStreamWriter 類的 getEncoding() 方法返回。?

Java 虛擬機的每個實例都有默認的 charset,它可能是也可能不是某個標準 charset。默認 charset 在虛擬機啟動時決定,通常根據語言環境和底層操作系統使用的 charset 來確定。

轉載于:https://www.cnblogs.com/brucecloud/p/6375471.html

總結

以上是生活随笔為你收集整理的Java虚拟机(JVM)默认字符集详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。