タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Unicodeとpythonに関するurza358のブックマーク (5)

  • Python2で文字列を処理する際の心掛け - Qiita

    語を扱うPythonプログラマ(with Python2)にとっての最大の天敵(過言)、UnicodeEncodeError。 昨日横の人がその餌となり、その解決の手助けをしているうちに自分の中でPython2での文字列処理の方向が少し整理できた。(近いうちにPython3バージョンもまとめたい) 個人的結論 バイト文字列/ユニコード文字列のどちらを扱っているかを常に意識しておく。 (基的に)プログラム内ではユニコード文字列を扱い、標準入出力とやり取りする際(ex. print)にはバイト文字列に変換する。 バイト文字列とユニコード文字列 バイト文字列は特定のエンコード方式(ex. utf-8)でエンコードされており、リテラルでは'あいう'のように表現する。一方、ユニコード文字列はUnicodeのコードポイントを並べたものであり、リテラルではu'あいう'のようにuをつける。 (py

    Python2で文字列を処理する際の心掛け - Qiita
  • Python2のstr/unicodeとencode/decode - Qiita

    2種類の文字列 Python2には文字列が2種類ある。 ここではその2つを str文字列 および unicode文字列 と呼び、これらをまとめて 文字列 と呼ぶ。 公式ドキュメントでも用語があまり統一されていないので、とりあえずこう呼ぶことにする。 先に言っておくと、基的にunicode文字列を使うべき。 str文字列 '...' リテラルで生成されるオブジェクト UTF-8, Shift-JISなどの符号化方式によって各文字を符号化して得られるバイトを並べたもの 1文字が複数バイトで表現されることもある str文字列そのものは、符号化に使われた符号化方式の情報をもたない 符号化方式を知るには基的に片っ端から試すらしい 対話環境で 'あいう' と入力すると、 \x で1バイトずつ区切られたバイト列が返る

    Python2のstr/unicodeとencode/decode - Qiita
  • python2.xでの日本語(マルチバイト文字)問題を一掃する!(その1) — ExSoft

    python2.xを使い始めて、必ずと言って良いほど遭遇するのが日語(マルチバイト)関連の問題です。 ネットで同様のケースを調べて、あまり理解をせずに、対処療法的にその場の問題を回避している人も多いように思いますが、一度腰を据えて理解すれば、それほど難しくないですし、python以外の言語にも応用ができます。 マルチバイト問題については、概念だけではなく、実際に手を動かし、目で確かめる(文字コードそのものを見る)事が重要です。 今回は、python2.xで遭遇する文字コード関連のエラーを実際に発生させ、その理由を理解した上で対処を行ってみましょう。 文字コードの定義 ケース1 [ 再現 ] pythonスクリプトファイルのencodingをcp932にし、以下を記述します。 ustr = u'い' [ 現象 ] SyntaxError: Non-ASCII character '\x8

  • Pythonでの日本語処理:Unicode型と文字列型 - 思い立ったら書く日記

    Pyhton の XML/HTML パーサ・ライブラリ BeautifulSoup を使って、Google の検索結果を整形する Python スクリプトを書いたところ、Python の日語処理で UnicodeEncodeError、UnicodeDecodeError ではまった。いい機会なので、Python で日語処理に関して、自分なりに整理してみる。 この記事は Windows での Python 2.5.1 で動作確認している。Python 3.x では改善しているかもしれないので、この記事を読む方はご注意を。Python 3.x については時間があれば確認したい。というより、早くバージョンアップしなさい!という感じですが。 [2009.09.22 追記] Python 3.0 で Unicode まわりがかなり修正かかっていました。この記事を読む方は、Python 2.5.

    Pythonでの日本語処理:Unicode型と文字列型 - 思い立ったら書く日記
  • PythonのUnicodeEncodeErrorを知る - HDEラボ

    Pythonにはじめて触って、いつのまにか1年が過ぎたのですが、一番はまったのは、やっぱりunicodeの扱いだったと思います。 特に、 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-12: ordinal not in range(128) のようなエラーにはさんざん悩まされました。ここがたとえばrubyなど他の言語と比べてわかりにくいために、Pythonが取っつきにくい言語になっているのではないか、と個人的には思います。 そこで、このエラーに関係するはまりどころとTipsをいくつか列挙してみました。これからPythonに触れられる方の参考になればと思います。 なお、環境はUNIX上のPython 2.4, 2.5を想定しています。 u1はunicode型で、s1はstr型です。s1にどのよ

  • 1