我正在使用由 Xtreamedia 源代码和数据库创建的数据库,大多数字段字符都有排序规则是 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中实现?