在文件中搜索非Unicode字符

时间:2018-06-28 16:45:44

标签: unicode character-encoding

我有一段文本(从db中提取),我想找到非unicode字符,因为在将值转换为{{时,在代码(python 3.6)的某些部分1}}我得到以下str

因此,如果我可以找到非Unicode字符,则可以决定如何处理它们。我绝对不想用其他东西代替它们。

我发现了如何使用ValueError: character U+ffffffc2 is not in range [U+0000; U+10ffff]在文件中查找非ASCII字符,但是我不确定这是否也会给我提供非Unicode字符。

1 个答案:

答案 0 :(得分:0)

请参见http://p3rl.org/Encode#coderef-for-CHECK

# contains U+ffffffc2 encoded in UTF-8
› hex nonunicodefile
0000  61 62 63 fe 83 bf bf bf  bf 82 78 79 7a           abc..... ..xyz

› perl -MEncode -lne'
    # replace junk with empty string
    my $line = decode "UTF-8", $_, sub { "" };
    print encode "UTF-8", $line;
' < nonunicodefile
abcxyz