
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 已经解决了 感谢 回头贴代码 |