如何将Unicode输出写入.csv以在Excel中使用?

我有一个包含中文字符的数据集,我使用UTF-8进行处理。 部分数据如下所示:

encod cKeyword UTF-8 <U+5169><U+7528> <U+5305> 27 bloide herme UTF-8 <U+593E> <U+62C9><U+934A> <U+9577> loewe UTF-8 <U+5169><U+7528> <U+5305> <U+8FF7><U+4F60> 31 lim pashli phillip UTF-8 <U+5305> <U+624B><U+62FF> givenchy pandora 

当我使用write.csv(data, "file.csv", fileEncoding = "UTF-8") ,我得到一个.csv文件,当打开时,在Excel中显示完全一样的东西。 但是我需要将Unicode显示为中文字符。

我怎样才能把它写成汉字呢?

您的字符用unicode代码点表示。

 Python 2.7.10 >>> s = '\u5169' # <U+5169> represented in unicode >>> print s.decode('unicode_escape')兩 

在Excel中,以下函数将您的代码点转换为字符表示forms:

 =UNICHAR(HEX2DEC(5169)) 

或者,这是一个更加端到端的例子。 下面的Python 2.7代码与unicodecsvpip install unicodecsv )模块,将您的R( r.csv )输出转换为Excelinput( excel.csv ):

 import unicodecsv as csv, re csvwrite = open('excel.csv', 'wb') w = csv.writer(csvwrite, encoding='utf-8') with open('r.csv', 'rb') as csvread: rows = csv.reader(csvread, delimiter='\t') for row in rows: p = re.compile('\<U\+([0-9a-fA-F]+)\>') iterator = p.finditer(row[1]) for match in iterator: s = '%s%s' % ('\u', match.group().replace('U+', '').replace('<', '').replace('>', '')) row[1] = row[1].replace(match.group(), s.decode('unicode_escape')) w.writerow(row) 

把生成的excel.csv和导入到Excel(不只是打开),但在这篇文章之后。

我没有安装R,但也可以用Excel可以理解的格式写输出,看看这个和这个 。

希望这可以帮助..

– ab1