LENGTH()與CHAR_LENGTH()區別


在閱讀《阿里巴巴java開發手冊》中,看到如下說明:

 

 

有些不懂,就去查找了相關資料。

官網描述如下:

 

 

總結一下就是說,無論是LENGTH()還是CHAR_LENGTH()都是為了統計字符串的長度。只不過,LENGTH()是按照字節來統計的,CHAR_LENGTH()是按照字符來統計的。例如:一個包含5個字符且每個字符占兩個字節的字符串而言,LENGTH()返回長度10,CHAR_LENGTH()返回長度是5;如果對於單字節的字符,則兩者返回結果相同。

那么,如何判斷多字節字符是占兩個字節,還是三個字節呢?繼續查了點資料:

 

原來這里的字節數和編碼有關。

所以回過頭來看文章開頭所描述的問題:因為編碼是UTF-8,所以一個中文占3個字節,所以LENGTH(“輕松工作”)值為12。

另外補充下,這里英文只占一個字節:

select length("China");

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM