有兩個字串, 需要根據最長的串求出乙個合理的大小, 這個大小等於最長串大小, 並繪製成分式效果, 預設 乙個漢字佔 三個utf8字元,乙個字母佔1個 , 直接跟strlen 計算長度將不準確.
真實效果如圖:
要計算中間串占用長度先得分以下三步:
1: utf8 的中英文混合串 轉為unicode 字串;
2: 區分中文和英文, 分別計算大小;
3: 將所有字串組合直接用渲染引擎繪製(gdi,opengl等都可以);
**如下:
utf8轉unicode:
std::wstring utf82unicode(const char* str)
求混合串長度:
bool ischchar(wchar_t no)
// uni >= 『0』 && uni <= 『9』 (*s >= 『a』 && *s <= 『z』) || (*s >= 『a』 && *s <= 『z』)
int calcstringlength(string & str, int defaultchinesecharlen = 2)
return len;
}組合成乙個串:
string expressionnode::baselinecalc(expressionnode * linenode, string & v1, string & v2)
gsstring retstr("");
if (len1 > len2)
else }
string tmp = "\n";
for (int i = 0; i < len; i++)
tmp += "-";
tmp += "\n";
return tmp;
Django 擷取中英文混合字串
在列表顯示的時候,我們常常要擷取文章標題的長度,python擷取字串,本來很簡單的,但是中文和英文的寬度不一樣,在頁面看起來長度就差很遠了 length7 這是中文長度七 粗略來算 是粗略哦 乙個中文字元的寬度大概等於兩個英文本元的寬度。乙個中文字元的utf8編碼長度為3,gbk為2 所以將使用gb...
C 中英文混合字串對齊
private static string padrightex string str,int totalbytecount string w str.padright totalbytecount dcount return w 這段 來自 的改進。採用utf 8 coding.getbyteco...
PHP中獲取中英文混合字串長度
今晚在寫框架的表單驗證類時,需要判斷某個字串長度是否在指定區間內,很自然地,想到了php中的strlen函式。str hello world echo strlen str 輸出12 然而在php自帶的函式中,strlen及mb strlen都是通過計算字串所佔位元組數來計算長度的,在不同的編碼情況...