微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash – 如何将文件名从unicode转换为ascii

我在 linux上安装的NTFS分区上有一堆音乐文件,文件名带有unicode字符.我在编写脚本以重命名文件时遇到问题,因此所有文件名都只使用ASCII字符.我认为使用iconv命令应该可以工作,但是我无法转义’mv’命令的字符.

编辑:如果没有unicode字符的直接转换并不重要.我想我只会用“?”代替那些.字符.

解决方法

我不认为iconv有任何角色替换设施.这在 Python中可能有所帮助:

#!/usr/bin/python
import sys

def unistrip(s):
    if isinstance(s,str):
        s = s.decode('utf-8')
    chars = []
    for i in s:
        if ord(i) > 0x7f:
            chars.append(u'?')
        else:
            chars.append(i)
    return u''.join(chars)

if __name__ == '__main__':
    print unistrip(sys.argv[1])

然后打电话给:

$./unistrip.py "yikes_
                
                                 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐