python:编码方式的问题

chosen86 2014-09-09 06:41:41
python默认是ascII编码,写了一个python程序,里边有把数据写入生成的新文件,但是logDB只能识别unicode编码的文件,求问怎么把生成的新文件改为unicode编码方式?
...全文
310 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chosen86 2014-09-11
  • 打赏
  • 举报
回复
引用 14 楼 u013171165 的回复:

#!usr/bin/python
#-*- encoding: utf-8 -*-

import sys

reload(sys)
sys.setdefaultencoding("utf8")

import codecs  
file=codecs.open("路径","w","utf-8")  
file.write(u"XXXXX")  # 按以上楼层代码自己修改
file.close() 
自己解决了,谢谢
chosen86 2014-09-11
  • 打赏
  • 举报
回复
引用 14 楼 u013171165 的回复:

#!usr/bin/python
#-*- encoding: utf-8 -*-

import sys

reload(sys)
sys.setdefaultencoding("utf8")

import codecs  
file=codecs.open("路径","w","utf-8")  
file.write(u"XXXXX")  # 按以上楼层代码自己修改
file.close() 
如果想用ucs-2 little endian这种编码方式怎么办?setdefaultencoding好像不行
  • 打赏
  • 举报
回复
python unicode文件读写:

# coding=gbk
import codecs

f = codecs.open('c:/intimate.txt','a','utf-8')
f.write(u'中文')
s = '中文'
f.write(s.decode('gbk'))
f.close()

f = codecs.open('c:/intimate.txt','r','utf-8')
s = f.readlines()
f.close()
for line in s:
    print line.encode('gbk')
iasky 2014-09-10
  • 打赏
  • 举报
回复
py2.x可以str.decode("ascii").encode("utf-8")
The_Third_Wave 2014-09-10
  • 打赏
  • 举报
回复

#!usr/bin/python
#-*- encoding: utf-8 -*-

import sys

reload(sys)
sys.setdefaultencoding("utf8")

import codecs  
file=codecs.open("路径","w","utf-8")  
file.write(u"XXXXX")  # 按以上楼层代码自己修改
file.close() 
INeddy 2014-09-10
  • 打赏
  • 举报
回复
str.decode("ascii").encode("utf-8")
INeddy 2014-09-10
  • 打赏
  • 举报
回复
logdb是个什么东西,导入的python模块还是其他软件?是在你程序里调用的还是独立运行的? 有没有报错信息打出来下
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 3 楼 xmnathan 的回复:
python unicode文件读写:

# coding=gbk
import codecs

f = codecs.open('c:/intimate.txt','a','utf-8')
f.write(u'中文')
s = '中文'
f.write(s.decode('gbk'))
f.close()

f = codecs.open('c:/intimate.txt','r','utf-8')
s = f.readlines()
f.close()
for line in s:
    print line.encode('gbk')
不是很明白什么意思...
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 10 楼 xmnathan 的回复:
[quote=引用 9 楼 chosen86 的回复:] [quote=引用 8 楼 xmnathan 的回复:] [quote=引用 7 楼 chosen86 的回复:] [quote=引用 5 楼 xmnathan 的回复:] [quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 需要import 什么吗?[/quote] str模块 不用[/quote] 我试了一下,好像没起作用。代码如下: 在这之前所有数据存在list里边,请问哪里不对?

for text in list:
    text = text.decode("ascii").encode("utf-8")
    fw.write(text)
fw.close()
[/quote] 估计是因为文件打开时的编码格式就已经不对 你还是试试#3上修改文件打开编码格式吧 写入的数据和文件的编码格式都要转换成一致的utf-8[/quote] 也就是打开原始文件的时候以utf-8的方式打开,处理完最后写入的时候再以utf-8的方式写入?
  • 打赏
  • 举报
回复
引用 9 楼 chosen86 的回复:
[quote=引用 8 楼 xmnathan 的回复:] [quote=引用 7 楼 chosen86 的回复:] [quote=引用 5 楼 xmnathan 的回复:] [quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 需要import 什么吗?[/quote] str模块 不用[/quote] 我试了一下,好像没起作用。代码如下: 在这之前所有数据存在list里边,请问哪里不对?

for text in list:
    text = text.decode("ascii").encode("utf-8")
    fw.write(text)
fw.close()
[/quote] 估计是因为文件打开时的编码格式就已经不对 你还是试试#3上修改文件打开编码格式吧 写入的数据和文件的编码格式都要转换成一致的utf-8
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 8 楼 xmnathan 的回复:
[quote=引用 7 楼 chosen86 的回复:] [quote=引用 5 楼 xmnathan 的回复:] [quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 需要import 什么吗?[/quote] str模块 不用[/quote] 我试了一下,好像没起作用。代码如下: 在这之前所有数据存在list里边,请问哪里不对?

for text in list:
    text = text.decode("ascii").encode("utf-8")
    fw.write(text)
fw.close()
  • 打赏
  • 举报
回复
引用 7 楼 chosen86 的回复:
[quote=引用 5 楼 xmnathan 的回复:] [quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 需要import 什么吗?[/quote] str模块 不用
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 5 楼 xmnathan 的回复:
[quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 需要import 什么吗?
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 5 楼 xmnathan 的回复:
[quote=引用 4 楼 chosen86 的回复:] [quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。[/quote] 。。。谢谢
  • 打赏
  • 举报
回复
引用 4 楼 chosen86 的回复:
[quote=引用 1 楼 xydtf 的回复:] str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?[/quote] LZ理解力赛高 str = “你要写到文件里的字符串内容” str = str.decode("ascii").encode("utf-8") 然后再把str写文件。。。
chosen86 2014-09-10
  • 打赏
  • 举报
回复
引用 1 楼 xydtf 的回复:
str.decode("ascii").encode("utf-8")
把这一行加到程序里就可以?

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧