2013-05-08 4 views
1

숫자 키패드에서 Alt 키 을 입력하여 생성 된 ASCII 코드 160의 유니 코드 문자의 경우 길이가 두 자.문자열의 "확장"길이를 반환

예를 들어 필드 (예 : Android 로그의 태그 입력란)는 88 자입니다. 87 자의 일반 문자 (ASCII < 127)와 하나의 중단없는 공간이있는 경우 String.length()에 나는 여전히 88을 얻을 것입니다. 그러나 사실 89의 길이가 필요합니다. 그리고 필드 크기를 초과합니다.

Java (또는 Android)에 문자열의 "확장 된"길이를 반환하는 함수가 있습니까? 참고로

: http://en.wikipedia.org/wiki/Whitespace_character

+7

'String # getBytes ("UTF-8"). length' 같은 것을 의미합니까? –

+0

감사합니다! Z! 빙고! ;-) – midnite

+1

ASCII 코드 160과 같은 것은 존재하지 않습니다. ASCII 범위는 00-127입니다. – dda

답변

1

자바 문자의 정신 모델을 혼동한다. 해당 문자열의 길이는 88 이며 UTF-8 시퀀스로 작성된 경우 89 바이트이 필요합니다. 어떤 버전을 사용해야하는지는 사용자가 원하는 버전에 따라 다릅니다. 네트워크 링크를 사용하여 데이터를 보내려면 옥텟 (바이트)을 사용해야합니다.

+0

Zim-Zam O'Pootertoot의 주석 (위대한 이름, BTW)을 읽을 때까지 나는 이것을 약간 혼란스러워했다. – CodeChimp

관련 문제