python非转义输出utf8编码

笔者需要将代码中的utf8编码的字符串str1原样输出到文件里,因为最终需要输出的是一行,并且其中的\t等还需要转义,所以使用r""这种形式也不靠谱。能想到的办法就是把"\xe6"转换成"\\xe6"这样,不过事实上非常难转换,因为'\xe6'整个是一个长字符,无法单独匹配其中的'\'。最终发现了一个很巧妙的方法,首先把字符串加入一个列表中,然后列表转换成字符串,最后去掉该字符串的中括号即可。

def eval_utf8(value):                         #'\xe9\x93\xb6\xe8\xa1\x8c'
    str1 = str([value])                       #"['\\xe9\\x93\\xb6\\xe8\\xa1\\x8c']"
    return str1.strip("[]").strip("'")        #"\\xe9\\x93\\xb6\\xe8\\xa1\\x8c"

 

posted on 2015-05-04 21:09  Barthu  阅读(490)  评论(0)    收藏  举报