如果这是 PHP,我可能会这样做:
function no_more_half_widths($string){
$foo = array('1','2','3','4','5','6','7','8','9','10')
$bar = array('1','2','3','4','5','6','7','8','9','10')
return str_replace($foo, $bar, $string)
}
我在 python 中尝试了 .translate 函数,它表明数组的大小不同。我认为这是因为各个字符都以 utf-8 编码。有什么建议么?
最佳答案
内置的unicodedata
模块可以做到:
>>> import unicodedata
>>> foo = u'1234567890'
>>> unicodedata.normalize('NFKC', foo)
u'1234567890'
“NFKC”代表“ojit_a KC [Compatibility Decomposition, followed by Canonical Composition]”,将全角字符替换为半角字符,即 Normalization Form 。
请注意,它还会同时规范化各种其他内容,例如单独的重音符号和罗马数字符号。
关于Python:如何用半角字符替换全角字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2422177/