2011年2月11日 星期五

Python 移掉 unicode 裡的 control code

先貼 code 再說:
ctrl_ords = range(32)        # 取得所有不能顯示的字元和 '\n' 以及 TAB
ctrl_ords.remove(ord('\t'))  # 去掉 TAB
ctrl_char_map = dict.fromkeys(ctrl_ords, None)  # 建立對照表
line = line.decode('utf8').translate(ctrl_char_map)  # 用 translate 移掉對照表裡的字元
str 和 unicode 的 translate 用法不同, 學 unicode 應該就夠了。unicode 版的 translate 要求傳入一個 dict, key 必須是 unicode ordinals, 沒注意到 "ordinals", 一直試都沒效果。value 可以是  unicode ordinals, strings 或 None, None 表示要刪掉該字元。

相關參考資料:

沒有留言:

張貼留言

C++ 能否用 memcpy 複製 class / struct 的資料?

答案是: POD (plain old data) type 可以。POD type 可和 C 互通, CPP Reference POD Type 的介紹: Specifies that the type is POD (Plain Old Data) type. Thi...