1.PHP
PHP其實跟C語言一樣,採用ASCII,一個char佔1個位元組,在GBK編碼,一個英文佔1個位元組,一個中文佔2個位元組。然而在UTF-8編碼下,一個英文還是佔1個字節,但一個中文是佔3-4個位元組(一般都是3個位元組),這通常會給你獲取字串的字長或者字串截取帶來麻煩。例如:
<?php $str = "我爱你Iloveyou"; echo strlen($str); //utf8下是17,GBK下是14,但如果问你$str的字长是多少,或者让你显示前6个字,其余省略号表示,怎么办? ?>
2.Java
java中的一個char是2個位元組。 java採用unicode,2個位元組來表示一個字符,一個中文或英文字符的unicode編碼都佔2個字節,但如果採用其他編碼方式,一個字符佔用的字節數則各不相同。例如:
public class Test { public static void main(String[] args){ String str = "我们aaaaa"; int byte_len = str.getBytes().length; int len = str.length(); System.out.println("字节长度为:" + byte_len); System.out.println("字符长度为:" + len); } }
以上就介紹了記php和java中英文字節長度和編碼關係,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。