我需要在文件中写几行。这些行可以是英文或中文。我需要一些预定义的格式。我使用下面的python代码来实现它。
self._file.write(u"%-9s %-21s%-6s %-6s %%\n" % (stop['stop_id'], stop['stop_name'], self.format_time(stop.get('arrival'), stop.get('exit')), self.format_time(stop.get('departure'), stop.get('enter'))))停止字典被正确地构造。对于英文名称,它的格式是正确的,但对于中文名称,格式不正确。我附上了一个屏幕截图来解释这个问题。

我需要改变我写文件的方式或者其他需要的东西吗??
发布于 2014-11-07 19:17:05
我的格式是正确的。我不能想象为什么Python要改变它的格式。
您的问题是Sublime文本无法正确显示中文文本。这可能是由于用于显示中文字符的字符集造成的。
显示不正确行的十六进制转储,然后我们才能判断这是否是Python问题
这是阅读像courrier new这样的固定字符集格式的邮件和像arial这样的成比例字符集的邮件时的一个常见问题,即使是纯英语文本也是如此。
我做了一些使用UTF-8字符的测试,使用UTF-8中的2个字节,例如éè和Python (2.7)根据字符数而不是字节数正确地格式化unicode字符串-对不起,我没有处理中文单词...
https://stackoverflow.com/questions/26799250
复制相似问题