Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。1万件21PythonでUnicodeに変換するにはu"abc"とする方法と、unicode()を使う方法があると思います。下記を実行すると、結果が異なるのですが、どのような違いがあるのでしょうか。len(unicode("\u2192"))外部からUnicodeを読み込んで、文字として表示したいのですがここで躓いてしまいました。個の銅バッジ2PythonはUnicodeの扱いが2系列と3系列では大きく変わったと思うので、どちらのバージョンを前提にしているのか明記した方がいいと思います。errors])はstrを受け取り、encodingは指定しなければデフォルトのエンコーディングになります。デフォルトのエンコーディングを確認してみます。sys.getdefaultencoding()'ascii'デフォルトはasciiのようです。range(128)あの忌々しいエラーになります。いうとASCIIデコーダは0x00-0x7Fが有効な範囲で0xe2は範囲外だから。そこで入力された文字列はUTF-8のエンコードである事を教えます。range(128)またエラーです!しかしエラーメッセージをよく見てみると先ほどはdecodeエラーだったのが、今回はencodeエラーです。U2192のUnicodeオブジェクトはasciiエンコーダでは表現できないわけです。僕の使っている端末はUTF-8なので.encode('utf-8')でUTF-8の文字列に変換します。"utf-8").encode('utf-8')→めでたく→が表示されました。今度はUTF-16でエンコードされた文字列を与えて、さらにUTF-8に変換して端末に表示してみます。utf-16beのbeはビッグエンディアンのことです。"utf-16be").encode('utf-8')→うまくプリントできました!ちなみにutf-16leでリトルエンディアン指定だと、正しくない文字になります。"utf-16le").encode('utf-8')鈡バイト順を変えれば正しく表示されます。"utf-16le").encode('utf-8')→ただのUTF-16だと、次のような結果になったのでリトルエンディアンと同じ扱いになるみたいです。UTF-16の標準なのか、Pythonの標準なのかCPU依存なのかは調べていないので不明です。最後に、u""プリフィックスは文字列がそのファイルのエンコードで書かれているか、\uで指定したUTF-16の文字列をUnicodeオブジェクトとして扱うという意味です。utf-8とあれば、""の中のバイト列をUTF-8と解釈して、Unicodeオブジェクトに変換します。u""以外の場所で\uを指定してもUnicodeの意味になりません。質問の内容の結果の違いについて。以上文字列とユニコードとエンコーダ、デコーダの関係が分かったところで、質問の内容です。len(unicode("\u2192"))1行目は正しくUTF-16のバイトを1文字のUnicodeオブジェクトに変換しています。2行目は\u2192という文字列なのですが、先に書いたようにu""以外の場所で\uを指定してもUnicodeの意味になりません。\とuと2と1と9と2と同じです。6文字をUnicodeオブジェクトに変換しても6文字の長さのままになります。2というASCII文字列をUnicodeオブジェクトに変換しただけなので6文字。|3Python3で、Unicodeはデフォルトです。unicode()コンストラクタはありませh。いう用法を持っています。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。range(128))0pythonでwavファイルを読み込みたいです。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。