我正在使用Xtreamedia创建的数据库源代码和数据库大部分字段char有Collation是latin1_swedish_ci但是真的不知道它如何解码并且在php中使用头文件utf-8很好。
顺便说一句,我正在使用来自此数据库的 django tastypie 来建立api,我想保留数据库结构,并且在生成对客户端的响应时有问题要解码为utf-8。我已经写了一个CustomSerializer。
import json
from django.core.serializers.json import DjangoJSONEncoder
from tastypie.serializers import Serializer
class CustomJSONSerializer(Serializer):
def to_json(self, data, options=None):
options = options or {}
data = self.to_simple(data, options)
if data.get('objects'):
res = []
for i in data['objects']:
if i.get('name_vn'):
k = i
try:
k['name_vn'] = i['name_vn'].encode('utf8').decode('latin1', errors='ignore')
except:
print i
res.append(k)
data['object'] = res
return json.dumps(data, cls=DjangoJSONEncoder, sort_keys=True)
但它有些解码不好但有些不能
这是mysql连接器中的任何技巧吗? 因为当我转换像http://www.bothernomore.com/2008/12/16/character-encoding-hell/这样的字段时 它运作良好。
ALTER TABLE `name` MODIFY COLUMN `title` VARCHAR(255) CHARACTER SET binary;
ALTER TABLE `name` MODIFY COLUMN `title` VARCHAR(255) CHARACTER SET utf8;
我认为是转换为utf-8的方法问题是如何在python中实现?
提前感谢!