我写了一个发短信的小东西,每次进行数据库插入操作时都会显示如下错误
问题描述
我写了一个发短信的小工具,只要输入发送内容和手机号码就会自动发送短信,当我输入的内容是英文时没有任何问题,但当我输入中文时,检查出来的编码竟然是 {'confidence': 0.38398486178080915, 'language': 'Russian', 'encoding': 'KOI8-R'} 然后插入数据库操作也会报错 UnicodeDecodeError: 'utf8' codec can't decode byte 0xb2 in position 181: invalid start byte,请问这是怎么回事啊?
问题出现的环境背景及自己尝试过哪些方法
无论我怎么转换编码,输入的中文都变不成GBK编码
相关代码
# -*- coding:utf-8 -*-import json,pyodbc,time,sys,chardet
reload(sys)
sys.setdefaultencoding ('utf-8')
conn=pyodbc.connect('DRIVER={SQL Server Native Client 10.0};SERVER=XXX;DATABASE=XXX;UID=XXX;PWD=XXX')
cursor = conn.cursor()
stopword = ''
str1 = ''
values=''
word=raw_input("Text:")
word=word.decode("KOI8-R")
word=word.encode("gbk")
print chardet.detect(word)
print word
print('PhoneNumber:')
for line in iter(raw_input, stopword):
str1 += line + '\n'
now = int(time.time())
future=now+36000
values=values+'select'+' '+"'106583187'"+','+line+','+str(now)+','+str(future)+','+"'"+word+"'"+','+"'MF'"+','+"'0'"+','+"'01'"+','+str(1)+','+str(8)+','+"'broadcast'"+' union all '
values1="insert into sms_wait_for_send (orgaddr,destaddr,sendtime,validtime,msgtext,serviceid,feecode,feetype,sendstatus,msgfmt,code_3) "+values
values2=values1[:-10]
print values2
s=cursor.execute(values2)
if (s==1):
print "Success!"
else:
print "Fail!"
conn.close()
回答:
mysql数据库请使用utf8mb4编码
以上是 我写了一个发短信的小东西,每次进行数据库插入操作时都会显示如下错误 的全部内容, 来源链接: utcz.com/a/164681.html