問題タブ [python-unicode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Django管理者入力はUnicodeDecodeErrorを引き起こします、どうやって?
今日、私はDjangoadminを介してエンコードできないデータを受け取りました。どういうわけか、データのエンコーディングはユニコードではありません。これはどのように可能ですか?
モデルに、データをUnicodeで返すname
プロパティがあります。Client
しかし、これは機能しません:
通常の文字列として名/姓をエンコードすると、十分に機能します。
ここで何が起こったのですか?そして、この入力はどのようにして管理者を介して私のモデルに反映されましたか?
システムスタック(これは外部サーバーです):
- Debian 6.0.5(スクイーズ)
- Django 1.4.1
- Python 2.6.6
- MySQL 5.1.49
- MySQL-python == 1.2.2
関連するモデルコードは次のとおりです。
python - UnicodeDecodeError:'utf8'コーデックはバイト0x9cをデコードできません
クライアントからUTF-8の有効な文字を受信することになっているソケットサーバーがあります。
問題は、一部のクライアント(主にハッカー)が間違った種類のデータをすべて送信していることです。
本物のクライアントは簡単に区別できますが、後で分析できるように、送信されたすべてのデータをファイルに記録しています。
œ
エラーの原因となるこのような文字が表示されることがありUnicodeDecodeError
ます。
これらの文字の有無にかかわらず、文字列UTF-8を作成できる必要があります。
アップデート:
私の特定のケースでは、ソケットサービスはMTAであったため、次のようなASCIIコマンドのみを受信することを期待しています。
私はこれらすべてをJSONで記録していました。
それから、善意のないそこにいる何人かの人々は、あらゆる種類のがらくたを送ることに決めました。
そのため、私の特定のケースでは、ASCII以外の文字を削除してもまったく問題ありません。
python - Python、MySQLエラー「文字列値が正しくありません:」を回避するために4バイト文字を変換します
(Pythonで)4バイトの文字を他の文字に変換する必要があります。これは、次のようなエラーが発生することなく、utf-8mysqlデータベースに挿入するためのものです。
mysqlに4バイトのUnicodeを挿入することによって発生する警告は、次のようにそれを行うことを示しています。
ただし、コメントのユーザーと同じエラーが表示されます。「...文字範囲が正しくありません。」これは、PythonがUCS-2(UCS-4ではない)ビルドであるためと思われます。しかし、私は代わりに何をすべきかはっきりしていませんか?
python - Pythonで非ASCII文字列を適切に処理する方法
データベースにラテン記号のデータがあるアプリケーションを構築しています。ユーザーはこのデータを入力できます。私がこれまでやってきたことは、テンプレートにデータを表示するときに、すべてのユーザー入力をencode('latin2')し、最後にdecode('latin2')することです。これは少し面倒で、これを処理するためのより良い方法があるかどうか疑問に思っています。
python - バックグラウンドで実行すると OpenERP コードが例外をスローする
これを serverfault または stackoverflow の下に投稿する必要があるかどうかはわかりません。それが私のサーバーのロケールの問題なのか、それとも動作しているのが python なのか OpenERP アプリケーションなのかはわかりません。
私は OpenERP システムを使用していますが、非常に奇妙な問題に遭遇しました。
openERP モジュールには、さまざまな開発者がアプリケーションのデバッグに使用した「印刷」行がいくつかあります。
次のように:
と
通常のターミナルで OpenERP を起動すると、フォアグラウンドで正常に実行され、デバッグ ログとコンソールに出力されます。アプリケーションで例外が発生することはありません。
では問題に!
前に、アプリケーションを実行している間、アプリケーションを切り離してサーバーへの接続を閉じることができるように、画面でアプリケーションを開始しました。
「画面」で実行すると、コードは例外をスローしません
画面の代わりに init.d スクリプトが必要です。私はこのスクリプトを作成しました:
スクリプトが機能し、サーバーを起動および停止します。
Excel ファイルからデータをインポートするモジュールを使用すると、この例外が発生します。また、スウェーデン文字「åäö」を含む文字列を出力しようとするコードの他の場所でも例外が発生します。
UnicodeEncodeError: 'ascii' コーデックは位置 3 の文字 u'\xe4' をエンコードできません: 序数が範囲内にありません(128)
ロケールか何かを変更したのは「start-stop-daemon」コマンドの何かだと思いました。したがって、引数「--background」を使用してアプリケーションを強制的にバックグラウンドにする代わりに、次のことを試しました。
これにより、UnicodeEncodeError が解決されました。私が思ったすべての喜び。しかし!
入出力エラーが発生するようになりました
そして、これを生成するコード
「pay_order」変数は、「åäö」を含む場合がある文字列です。
なぜこのような振る舞いをするのか理解できません。
python - PIL:draw.textで画像に€を描く方法は?
背景画像にarial.ttf
. 私のテキストは正しいですが、ユーロ記号についてです。[] が 2 つあります。問題がどこから来ているのかわかりません。これは PIL のエンコーディングの問題ですか、それともフォントに問題がありますか?
python - Python DELETE文字(Unicode 7F)は何もしないようです。後続の文字を削除するべきではありませんか、それとも間違っていますか?
Pythonシェルに入り、これをテストしました。結果は次のとおりです。
この文字の私の理解によれば、それはその文字列のスペースを示すべきではありませんでした。私は何が間違っているのですか?
file-upload - mysql と python で文字の混乱を避ける
http://werkzeug.pocoo.org/からロゴ画像をアップロードしたい 保存後、以下を試してみました。私は初心者なので助けてください..
HTMLフォームを介してアップロードしたときに受信したストリームは
req.file["name"] を使用して上記を受け取り、Mysql に保存します。
今、MySQL から読み返すと、
すべてのエスケープ文字がなくなりました。このファイルを表示したいのですが、応答を送信した後に HTML で表示できません。
なぜこれが起こっているのですか?どうすれば修正できますか? 私はこれを1週間以上乗り越えることができません。
私はpython2.7.3とwerkzeugとpython用のmysql-connectorを使用しています。
github の 1 つのサンプル コードでは、これを使用しています。
これは完全に機能し、すべて通常のテキストです..どうすればこれを入手できますか. ?
python - Pythonでページをスクレイピングするときは、非ラテン文字を保持します
ページをスクレイプし、リンクを解析してから、リンクされているページをダウンロードし(クローラーのように聞こえますが、そうではありません)、それぞれを個別のファイルに保存するプログラムがあります。保存に使用されるファイル名は、ページのURLの一部です。たとえば、www.foobar.com / fooへのリンクを見つけた場合は、ページをダウンロードしてfoo.xmlという名前のファイルに保存します。
後で、そのようなすべてのファイルをループして、URLの最後の部分としてファイル名を使用してそれらを再ダウンロードする必要があります。(すべてのページは単一のサイトからのものです。)
URLで非ラテン文字に遭遇するまではうまく機能します。このサイトはutf-8を使用しているため、元のページをダウンロードしてデコードすると、正常に機能します。しかし、デコードされたURLを使用して対応するページをダウンロードしようとすると、エンコードが間違っていると思われるため、機能しません。ファイル名に.encode()を使用して元に戻そうとしましたが、何も変更されません。
これは非常に単純で、エンコーディングの問題を正しく理解していない結果であるに違いないことはわかっていますが、私は長い間頭を悩ませてきました。Joel Spolskyのエンコーディングの紹介を何度か読んだことがありますが、それでもここで何をすべきかを完全に理解することはできません。誰か助けてもらえますか?
どうもありがとう、bsg
ここにいくつかのコードがあります。エラーは発生しません。しかし、URLの一部としてページ名を使用してページをダウンロードしようとすると、そのページが存在しないと言われます。もちろんそうではありません-abc/x54のようなページはありません。
明確にするために:たとえば、www.foobar.com / Mehmet KenanDalbaşarへのリンクを含むページのhtmlをダウンロードしますが、Mehmet_Kenan_Dalba%C5%9Farと表示されます。www.foobar.com/Mehmet_Kenan_Dalba%C5%9Farページをダウンロードしようとすると、ページが空白になります。www.foobar.com/Mehmet KenanDalbaşarを保持し、必要なときにサイトに戻すにはどうすればよいですか?
python - ファイル名にUnicode文字が含まれているファイルを開くことを許可するにはどうすればよいですか?
実行時にディレクトリ内のランダムなビデオファイルを開く次のPythonスクリプトがあります。
出典:スーパーユーザーの投稿の回答'フォルダ内のランダムなファイルを開き、指定されたファイル名拡張子を持つファイルのみを開くように設定するにはどうすればよいですか?'
これは、スクリプトとしてこれを使用して、BATファイルによって呼び出されます。
このBATファイルをランダムなビデオを開きたいディレクトリに置きます。
ほとんどの場合、正常に動作します。ただし、ファイル名にUnicode文字(私の場合は日本語や韓国語の文字など)が含まれているファイルを開くことはできません。
これは、BATファイルとPythonスクリプトがディレクトリで実行され、ファイル名にUnicode文字が含まれるファイルを開いた場合のエラーメッセージです。
C:\TestDir>openrandomvideo.BAT
C:\TestDir>C:\Python27\python.exe "C:\Programs\Scripts\open-random-video.py" cd
The filename, directory name, or volume label syntax is incorrect.
そのログの.FLVビデオファイルのファイル名は、コマンドラインログの元のファイル名(소시.flv)から「∩╗┐」に変更されていることに注意してください。
編集:上記のコマンドラインエラーメッセージは、BATファイルを「UTF-8withBOM」として保存したことが原因であることがわかりました。'ANSIまたはUTF-16'として保存すると、代わりに次のメッセージが表示されますが、ファイルは開かれません。
これで、そのログ内の.FLVビデオファイルのファイル名が元のファイル名(소시.flv)から「??。flv」に変更されます。コマンドラインログ。
私はWindows7、64ビットでPython2.7を使用しています。
ファイル名にUnicode文字が含まれているファイルを開くことを許可するにはどうすればよいですか?