ページへ戻る
印刷
Python/Unicodeの取り扱い
をテンプレートにして作成 ::
NJF Wiki
xpwiki
:Python/Unicodeの取り扱い をテンプレートにして作成
開始行:
*PythonのUnicodeに関する問題
PythonでUnicodeをあつかうのはかなりやっかいです。
バージョン3では改善されましたが、バージョン2系ではUnicode...
コンソール画面にテキストを表示する、というようなごく簡単...
バージョン3以降を使えばよいのですが、ライブラリの対応状況...
そんなときのUnicodeの取り扱いについて紹介します。
*Unicodeを実際に使うには
まず、ソースコードにUnicode文字列を書くためには、以下のコ...
# -*- coding: utf-8 -*-
これにより、Pythonはそのファイルでutf-8の文字コードが使わ...
ないとエラーになります。
実際にutf-8の文字列をソースに書くときは、
utfString = u"これはutfです"
というように、先頭に「u」をつけます。
標準出力でUnicodeを出力するなら、以下のように出力前に変換...
こうしないとパイプで他のプログラムにデータを渡すときなど...
import sys
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
標準入力や標準エラー出力も同様です。
sys.stdin = codecs.getreader('utf-8')(sys.stdin)
sys.stderr = codecs.getwriter('utf-8')(sys.stderr)
Unicodeとstrを変換するには、Unicode->strはdecode、str->Un...
utfString = u"これはUnicodeです"
strString = "これはstrです"
encodedUtf = utfString.encode("utf_8") #utfをstr
decodedStr = strString.decode("utf_8") #strをutf
print type(encodedUtf)
print type(decodedStr)
結果
<type 'str'>
<type 'unicode'>
逆にするとエラーとなります。
現実には使っているライブラリなどの引数や戻り値が、どれがu...
unicode、strどちらかわからない、またはどちらの可能性もあ...
def convertToUtf(s):
if isinstance(s,unicode):
return s
return s.decode("utf_8")
するといつでもunicode文字列が得られます。strについても同...
実際にバージョン2系で開発していると、Unicode関連のエラー...
UnicodeEncodeError: 'ascii' codec can't encode character...
このエラーを何度見たことかわからないくらいです。
根本解決として、早めにバージョン3以降に移るのがおすすめで...
終了行:
*PythonのUnicodeに関する問題
PythonでUnicodeをあつかうのはかなりやっかいです。
バージョン3では改善されましたが、バージョン2系ではUnicode...
コンソール画面にテキストを表示する、というようなごく簡単...
バージョン3以降を使えばよいのですが、ライブラリの対応状況...
そんなときのUnicodeの取り扱いについて紹介します。
*Unicodeを実際に使うには
まず、ソースコードにUnicode文字列を書くためには、以下のコ...
# -*- coding: utf-8 -*-
これにより、Pythonはそのファイルでutf-8の文字コードが使わ...
ないとエラーになります。
実際にutf-8の文字列をソースに書くときは、
utfString = u"これはutfです"
というように、先頭に「u」をつけます。
標準出力でUnicodeを出力するなら、以下のように出力前に変換...
こうしないとパイプで他のプログラムにデータを渡すときなど...
import sys
sys.stdout = codecs.getwriter('utf_8')(sys.stdout)
標準入力や標準エラー出力も同様です。
sys.stdin = codecs.getreader('utf-8')(sys.stdin)
sys.stderr = codecs.getwriter('utf-8')(sys.stderr)
Unicodeとstrを変換するには、Unicode->strはdecode、str->Un...
utfString = u"これはUnicodeです"
strString = "これはstrです"
encodedUtf = utfString.encode("utf_8") #utfをstr
decodedStr = strString.decode("utf_8") #strをutf
print type(encodedUtf)
print type(decodedStr)
結果
<type 'str'>
<type 'unicode'>
逆にするとエラーとなります。
現実には使っているライブラリなどの引数や戻り値が、どれがu...
unicode、strどちらかわからない、またはどちらの可能性もあ...
def convertToUtf(s):
if isinstance(s,unicode):
return s
return s.decode("utf_8")
するといつでもunicode文字列が得られます。strについても同...
実際にバージョン2系で開発していると、Unicode関連のエラー...
UnicodeEncodeError: 'ascii' codec can't encode character...
このエラーを何度見たことかわからないくらいです。
根本解決として、早めにバージョン3以降に移るのがおすすめで...
ページ名: