1
ljbha007 2013-04-27 16:34:46 +08:00
text = text.decode('utf-8')
将字符串转为unicode字符串 这样计数就如你的预期了 |
2
spark OP 这种方法不行哦, 中文算成一个字符了...
默认编码: utf-8 Python版本: 2.7.4 >>> msg = "中文123" >>> msg = msg.decode('utf-8') >>> len(msg) 5 |
3
swulling 2013-04-27 16:47:22 +08:00
|
4
spark OP |
8
Js 2013-04-27 17:28:59 +08:00
简单的按字节算肯定会出现一个字一半在上一行, 一半在下一行的bug
按字算才是对的, 出现上下行宽度不一样归根到底是字体宽度问题 还是自己根据文字的unicode范围定制一个字长表(比如英文1, 中文2)写个textwrap吧 |
10
spark OP @swulling 我把msg中多余的空格手动删掉了, 然后就好用了... 我猜可能是我复制到了看不到的换行符, 在中文部分加入隐藏的换行或者\n, gbk理解不了.
那么, 新的问题又来了, 我如果想在msg中加入换行应该怎么做呢? 我在中文部分加入\n或\r会报错, 在英文部分加入又只会显示空格. <script src="https://gist.github.com/yandongxu/5472551.js"></script> |
11
ljbha007 2013-04-27 19:15:55 +08:00
|
12
Yiner 2013-04-27 19:27:05 +08:00
变成unicode 然后判断是不是中文 中文算两个 英文算一个
|
13
lululau 2013-04-27 22:49:22 +08:00
楼主是想每N个单位换一行(一个汉字算两个单位)?那么你这个需求是不合逻辑的,因为一个汉字可能就被分到两行去了
|
14
for4 2013-04-28 00:49:52 +08:00
http://gist.github.com/anonymous/5473754
这样看下, 应该就知道要怎么做了吧? |
15
Zuckonit 2013-04-28 17:37:49 +08:00
UTF-8.....
|
16
spark OP 已经解决了 感谢 回头贴代码
|