タグ

unicodeに関するuokadaのブックマーク (4)

  • PythonでUnicodeエスケープされた文字列・バイト列を変換 | note.nkmk.me

    文字列をUnicodeエスケープされたバイト列に変換(エンコード) 文字列をバイト列に変換(エンコード)するには、encode()メソッドを使う。 第一引数encodingに'unicode-escape'を指定すると、Unicodeエスケープされたバイト列にエンコードされる。ハイフンではなくアンダースコアの'unicode_escape'でもよい。 codecs - Python 特有のエンコーディング --- codec レジストリと基底クラス — Python 3.11.4 ドキュメント s = 'あいうえお' b = s.encode('unicode-escape') print(b) # b'\\u3042\\u3044\\u3046\\u3048\\u304a' print(type(b)) # <class 'bytes'>

    PythonでUnicodeエスケープされた文字列・バイト列を変換 | note.nkmk.me
  • SQLAlchemy+MySQL Unicode文字列の怪 - nekomusha6のメモ

    Python2.Xで日語を扱うときUnicode文字列への/からの変換時に面倒な問題があるらしく*1、コード内ではどちらかに統一したいと思うらしいです(そう思います)。しかしSQLAlchemyにはPlane/Unicodeどちらで渡す/から返される文字列はどちらなのか仕組みがよく分かりません。そこで分かる範囲内で少し(現象的に)調べてみました。 結果 以下のように推測します。 create_engine()のconvert_unicode引数 True False 渡す文字列 Unicode型? DB-APIが受け取れるもの? 返る文字列(String経由) Unicode型 DB-APIが返したもの 返る文字列(executeなどDB-API直) DB-APIが返したもの DB-APIが返したもの 特に問題になるのはデータベースのドライバが返したものが何になるのかですが、MySQLd

    SQLAlchemy+MySQL Unicode文字列の怪 - nekomusha6のメモ
  • Pythonにおけるエンコーディングの扱いとエンコーディングの変換について - 試験運用中なLinux備忘録・旧記事

    (2010/11/1)記事の内容はバージョン2系のPythonについて書かれている。バージョン3系ではエンコーディングの扱いが変わっており、「バージョン3系のPythonにおける文字列とそのエンコーディングに関する覚え書き(文字列型とバイト列型)」で扱っている。 (2014/11/20)リファレンスのリンク先を修正した。 エンコーディングとエンコード/デコード操作 エンコーディングの変換 encode()やdecode()が失敗する場合について エンコーディングとエンコード/デコード操作Pythonにおいて、UTF-8やCP932(WindowsのShift_JIS)などのそれぞれのエンコーディングの文字列はUnicodeの文字列と相互に変換することができる。 各エンコーディングにエンコードされている文字列オブジェクトのメンバ関数decode()の引数にそのエンコーディング名を指定すると

    Pythonにおけるエンコーディングの扱いとエンコーディングの変換について - 試験運用中なLinux備忘録・旧記事
  • 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