スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
【--/--/-- --:-- 】 | スポンサー広告 | page top↑
PythonでUTF-8のBOMを書き込む

古いSafariにUTF-8のテキストファイルだと認識させるには、ファイルの先頭にBOMをつける必要があるらしい(mac持ってないから確認できない)。

Pythonでは

f.write('\xef\xbb\xbf')

または

bom = u'\ufeff'
f.write(bom.encode('utf-8'))

で書き込めます。

テーマ:プログラミング - ジャンル:コンピュータ

【2008/03/28 03:54 】 | Python | コメント(1) | トラックバック(0) | page top↑
Pythonで数値文字参照

AjaxやJSONで日本語ファイルを取り込む場合、文字コードで色々面倒なことがあるらしい(古いSafariとか)。 ならばこっちでデータを用意する場合、文字コードに関係ない方法で用意すればいいじゃん。 そういう場合良く使われるのはURIエンコードだけども、デコードという一手間がかかる。 というわけでここでは数値文字参照をおすすめしたい。

Pythonだとencodeで'xmlcharrefreplace'を使います。

import urllib

s = u'童顔で巨乳'
t = u'全自動卵割り機'
print urllib.quote(s.encode('utf-8'))
print s.encode('ascii', 'xmlcharrefreplace')
print urllib.quote(t.encode('utf-8'))
print t.encode('ascii', 'xmlcharrefreplace')

結果

%E7%AB%A5%E9%A1%94%E3%81%A7%E5%B7%A8%E4%B9%B3
童顔で巨乳
%E5%85%A8%E8%87%AA%E5%8B%95%E5%8D%B5%E5%89%B2%E3%82%8A%E6%A9%9F
全自動卵割り機

出力結果もURIエンコードより短い。

数値文字参照大勝利!!

テーマ:プログラミング - ジャンル:コンピュータ

【2008/03/28 02:58 】 | Python | コメント(0) | トラックバック(0) | page top↑
| ホーム |