1. 程式人生 > >Java中,字串在不同編碼格式下所佔位元組數

Java中,字串在不同編碼格式下所佔位元組數

package lianxi;
import java.io.UnsupportedEncodingException;
/**
 *
 */
public class one {

    public static void  main(String[] args) throws UnsupportedEncodingException {
        //獲取main方法入口下的檔案編碼格式
System.out.println(System.getProperty("file.encoding"));//輸出UTF-8
String s = "abc你好麼";
        byte[] bytes1 = s.getBytes("Unicode"
); System.out.println(bytes1.length); // 14 unicode編碼中每個字元佔2個位元組,但有些是4位元組,具體怎麼算的,未知 byte[] bytes3 = s.getBytes("UTF-8"); System.out.println(bytes3.length); // 12 = 1+1+1+3+3+3 byte[] bytes4 = s.getBytes("GBK"); System.out.println(bytes4.length); // 9 = 1+1+1+2+2+2 byte[] bytes2 = s.getBytes();//預設為專案檔案編碼:
UTF-8 System.out.println(bytes2.length); // 12 = 1+1+1+3+3+3 }

}

字串在不同編碼下的位元組數,參考地址:http://blog.csdn.net/cuiyaoqiang/article/details/52056175

System.getProperty();參考地址: http://blog.csdn.net/cuiyaoqiang/article/details/52056175
file.encoding      參考地址:    http://blog.csdn.net/loongshawn/article/details/50918506

相關推薦

Java字串不同編碼格式位元組

package lianxi; import java.io.UnsupportedEncodingException; /** * */ public class one { public static void main(String[] args) t

不同編碼方式對應位元組

①ASCII碼中,一個英文字母(不分大小寫)佔一個位元組的空間,一箇中文漢字佔兩個位元組的空間。一個二進位制數字序列,在計算機中作為一個數字單元,一般為8位二進位制數,換算為十進位制。最小值0,最大值255。 ②UTF-8編碼中,一個英文字元等於一個位元組,一箇中文(含繁體)等於三個位元

Java的基本資料型別在記憶體位元組

Java中的基本資料型別分四類八種 byte(Byte-1)/short(Short-2)/int(Integer-4)/long(Long-8) boolean(Boolean-1bit) char(Character-2) float(Float-4)/double(D

Java不同編碼方式中英文字元位元組

1 public class Test { 2 3 public static void main(String[] args){ 4 5 String[] charsetNames={ 6

Java的UTF-8、UTF-16編碼字元位元組

前言:上一篇文章寫了關於Unicode,以及utf-8、utf-16相關知識。所以本篇博文來驗證在java環境下,字元在不同編碼下所佔的字計數。 測試程式碼如下: package string; public class CharByteTes

java八種基本型別位元組

這是8中基本型別的記憶體中佔用位元組數(取值範圍是2的(位元組數X8-1)次方) 1.整型 型別 儲存需求 bit數 取值範圍 byte 1位元組

C語言不同型別資料位元組彙總

16位編譯器         char:1個位元組         char*:2個位元組         short int:2個位元組         int:2個位元組         unsigned int:2個位元組         long:4個位元組         long long:8個位

各種資料型別在16位、32位和64位系統位元組差異簡介

編寫C、C++程式時需要考慮每種資料型別在記憶體中所佔的記憶體大小,即使同一種資料型別在不同平臺下所佔記憶體大小亦不相同,具體對比如下: 資料型別 16位系統(byte) 32位系統(by

double*等指標型別位元組 float* long* int* short* 要求用sizeof 運算子計算C++char*

因為指標就是地址 都是4個位元組 sizeof(x1));... ||| 32BIT作業系統的 的PC裡 所有的指標 指標所佔的位元組數都是機器的位數32位的機器佔32/8=4位元組不用計算了吧cout&

基本資料型別在32位系統和64位系統位元組

最近看到這方面的知識,眾說紛紜,所以自己動手實驗下。請看程式碼: #include<iostream> using namespace std; int main() { cout << "字元資料:" <<

java基本資料型別位元組

JAVA基本資料型別所佔位元組數是多少?(32位系統) byte     1位元組                short    2位元組                int      4位元組                long     8位元組                char  

OCchar/short/int/float/double在64位系統位元組

size_t charSize = sizeof(char); NSLog(@"charSize = %zu", charSize);

C語言幾種型別位元組

最近經常會遇到C語言中各型別變數所佔位元組數的問題,索性在這裡做一個整理總結。 其實C標準並沒有具體給出規定哪個基本型別應該是多少個位元組數,而且這個也與OS、編譯器有關,比如同樣是在32位作業系統,VC++的編譯器下int型別為4個位元組,而在tuborC下

c++資料型別(整型/浮點型/字串/陣列/引用/結構體(記憶體對齊)/類(虛擬函式))定義、位元組、最大最小值

#include<iostream> #include<string> #include<limits> using namespace std; int main() { cout << "type: \t\t" << "********

sizeof運算子來獲取各種資料型別在記憶體位元組--gyy整理

C++並沒有規定各種資料型別在記憶體中的儲存大小,依賴於不同的編譯器的不同而不同,要想獲知當前編譯器對各種資料型別分配的大小,可以通過sizeof運算子來獲取。 使用方法1: sizeof(資料型別)   使用方法2: sizeof(變數名   或 常量名 或 表示式  )

C語言各種整型型別位元組

平臺: 64位編譯器+LINUX+Gcc #include<stdio.h> main() { char a; char* b; short int c; int d; unsigned int e

在utf8和gb2312 不同編碼情況漢字 數字 英文位元組

漢字在gbk編碼方式儲存的話,一個漢字佔2個位元組,要是UTF-8的話,一個漢字是3個位元組或者4個位元組。常用漢字是3個,冷門的是4個漢字,所以10個一般是30或30個以上位元組 英文和數字在gbk中佔兩個,utf-8,gb2312中佔1個,GB2312情況下中文佔

java如何按一定的格式輸出時間 必須給出例子

test clas 全部 code -s htm let pan mmm 題目2: 按一定的格式輸出時間 (視頻下載) (全部書籍) 本章源碼 import java.util.*;import java.text.SimpleDateFormat;public class

javaString字串轉化成list<Integer>格式

最近開發中遇到問題,同事在傳給我ids時拼接為String字串格式,轉化成List,網上的轉化大致為: String[] strs = {"1","3","12","33"}; List<String> sList = Arrays.asList(strs); 而我要的是轉化後

java字串常量池棧和堆的概念

問題:String str = new String(“abc”),“abc”在記憶體中是怎麼分配的?    答案是:堆,字串常量區。 題目考查的為Java中的字串常量池和JVM執行時資料區的相關概念。 "abc"為字面量物件,其儲存在堆記憶體中。而字串常量池則儲存的是字