虽然Ubuntu对中文的支持日渐长进,但是偶尔还是会见到个别地方出现乱码,正好最近在学python,就造个轮子玩玩。
代码如下:
[python]#!/usr/bin/env python3
ChaosString=input("请尽量只输入那个倒霉的乱码:\n")
Codes={'utf-8','iso-8859-1','gb18030'}
def Conv(aString,CodeFrom,CodeTo):
bString=aString.encode(CodeFrom,errors='ignore').decode(CodeTo,'ignore')
return bString
for CodeFrom1 in Codes:
for CodeTo1 in Codes:
if CodeFrom1 == CodeTo1:
pass
else:
Conv1String=Conv(ChaosString,CodeFrom1,CodeTo1)
for CodeFrom2 in Codes:
for CodeTo2 in Codes:
Conv2String=Conv(Conv1String,CodeFrom2,CodeTo2)
if len(Conv2String) == 0:
pass
else:
print("{:>10} -> {:>10} -> {:>10} -> {:>10}: {}".format(CodeFrom1,CodeTo1,CodeFrom2,CodeTo2,Conv2String))[/python]
这次
1.学习了input交互
2.学习了encode/decode(以及其中的error控制,本来还以为要学try去搞,看来不用了)
3.复习了循环和判断控制(但是还是看起来丑丑的,希望高手指点如何更高效地套嵌)
4.学习了format输出的对齐法
运行结果如下
ascii码因为有太多种前缀了就没加到这里面来;
在转换期间引起乱码的编码不少,这里只涉及常见的三个;
就是想要找到“正确”的编码比较费眼睛。
[造轮子]猜乱码
- highwind
- 帖子: 1362
- 注册时间: 2008-09-05 23:31
- 系统: LinuxMint17
[造轮子]猜乱码
茕茕
问题大海之一粟:http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=212497
NEMO-Actions使用方法:http://forum.ubuntu.org.cn/viewtopic.php?f=175&t=456548
在线编码转换:http://2cyr.com/decode/?lang=en
问题大海之一粟:http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=212497
NEMO-Actions使用方法:http://forum.ubuntu.org.cn/viewtopic.php?f=175&t=456548
在线编码转换:http://2cyr.com/decode/?lang=en