2014-01-07 2 views
0

의 내가 Python3에 점이있는 문자열을 "강조"하고 싶은 말은하자(Python3) 문자열의 (실제) 길이/

모든 게 잘 ASCII 문자 : 나는 len(mystring)와 길이를 얻을 나는 많은 점을 쓰기 필요에 따라. 다음은 길이 8 문자열 예는 다음과 같습니다

mystring 
........ 

하지만 내가 원하는 결과를 반환하지 않습니다 len(mystring) 비 ASCII 문자가; 예 : 렌은 ("列島") 2,하지만 난 문자열에 밑줄 4 점을 필요로 : 나는 정확한 결과를 얻을 수있는 방법

列島 
.... 

를? 어떤 도움을 주시면 감사하겠습니다!

+2

일반적으로 각 글리프의 너비가 다를 수 있으며 표시 폭은 렌더링 엔진에서 특정 글꼴의 너비를 특정 크기로 쿼리하면 찾을 수 있습니다. – tripleee

답변

0

... unicodedata.east_asian_width() 트릭을 수행합니다.

예 : this implementation.

+1

"Z̹͎̰A̴̼͙͚L͔̫̭̺͙̳͟G̻̘̰̤̤͟Ǫ̞͙̗"문자열에 대해 예상 한 5 개를 얻지 못하는 것 같습니다. – Kos

+0

맞습니다. 예상 답변을 얻는 방법을 알고 있습니까? – suizokukan

+0

아니요. 당신은 "이 문자열의 너비를 구하십시오."라고 묻습니다. 그리고 "어떤 단위로?"라고 묻습니다. "도트의 너비의 배수로"대답 할 수 있습니다. 폰트를 지정할 경우에만 대답 할 수 있습니다 (@ tripleee의 주석 참조). – Kos

관련 문제