facebook-sdkで日本語を扱う場合の注意点 - 改

以前facebook-sdkで日本語を扱う場合の注意点というメモを書きましたが、日本語を扱う場合にもっといい方法があることがわかりました。それは、'django.utils.encoding.smart_str'を使う方法です。このメソッドによって、unicode型をstr型に変更することができます。

Facebook SDKでunicode型をstr型に変更する例:

coding: utf-8

import  urllib
from django.utils import encoding
data1 = dict(key='value')
data2 = dict(key=u'value')
data3 = dict(key='値')
data4 = dict(key=u'値')

enc_data1 = urllib.urlencode(data1)
enc_data2 = urllib.urlencode(data2)
enc_data3 = urllib.urlencode(data3)
# enc_data4 = urllib.urlencode(data4)  # Raise a UnicodeEncodeError.
for k, v in data4.items():
    data4[k] = encoding.smart_str(v)  # Converts ‘unicode' type to ‘str' type.
enc_data4 = urllib.urlencode(data4)  # Do not raise a UnicodeEncodeError.

この記事が役に立った場合、シェアしていただけると励みになります!!