解決方法 ,字符變量 c 改爲 unsigned char
原因:
char 類型的變量 佔用 一個byte , 而一個 byte 可以編碼 2的8次方 = 256 個字符
這個是 最初的 anssi編碼 很多 國外的 程序就是用的這種字符編碼 ,而anssi只用其中的7位來表示128個字符,這對於英文國家來說足夠了
是 這對於 中文編碼的字符串來說就不能表示了
關於字符編碼的 問題這裏就不詳細說了 ,網上這種blog很多。
很多 非anssi編碼的 字符,轉換成一個 char類型 會變成負數 ,根據補碼的原理,一個負數的二進制如果被當作 整數會是很大的一個值,肯定 >= 256
總之,出現這種情況 就用 unsigned char 來表示一個字符就行了。
具體遇到的問題 ,
htmlcxx debug模式下 出現56 Expression: (unsigned)(c + 1) <= 256
解決方法:
http://www.cnblogs.com/shenlian/archive/2012/12/10/2811931.html
http://blog.csdn.net/schoolers/article/details/6891061
http://my.oschina.net/leeeryan/blog/9914
要注意版本 0.85