2014-01-07 34 views
0

比方說,我想「強調」的字符串以點帶Python3:(Python3)字符串的(真正的)長/寬

一切都很好用ASCII字符:我與len(mystring)長度和我寫的一樣多點如所須。這裏是一個字符串,其長度爲8的例子:

mystring 
........ 

但隨着非ASCII字符len(mystring)不返回的結果我需要的;例如len(「列島」)是2,但我需要4個點來強調字符串:

列島 
.... 

如何才能得到正確的結果?任何幫助,將不勝感激 !

+2

在一般情況下,每個字形的寬度可能不同,其顯示寬度只能通過以特定大小查詢特定字體寬度的渲染引擎來找到。 – tripleee

回答

0

... unicodedata.east_asian_width()有竅門。

參見示例this implementation

+1

我似乎沒有得到預期的5字符串「Z̹͎̰A̴̼͙͚L͔̫̭̺͙̳͟G̻̘̰̤̤͟Ǫ̞͙̗」:) – Kos

+0

你是對的:你知道如何得到預期的答案嗎? – suizokukan

+0

沒有。你問「得到這個字符串的寬度」,我問「以什麼單位?」,你可以用「以點的寬度的倍數」來回答。我只能回答,如果你指定一個字體(請參閱@ tripleee的評論)。 – Kos