このページでは、Twitter API が UTF-8 文字を使用して文字カウントを処理する方法について説明しています。これは、一部の UTF-8 文字がツイートの最後で機能し、他の文字が機能しない理由を説明するのに役立ちます。
https://dev.twitter.com/docs/counting-characters
実際の質問については、次の client_args 定義をコードに挿入してください。
from twython import Twython
APP_KEY = "key"
APP_SECRET = "key-secret"
OAUTH_TOKEN = "token"
OAUTH_TOKEN_SECRET = "secret"
client_args = {
"headers": {
"accept-charset": "utf-8"
}
}
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
これにより、アプリケーションから UTF-8 文字を受け入れるように Twitter API に指示する必要があります。次に、スクリプト/コードとそのすべてのインターフェイスも UTF-8 を受け入れるようにする必要があります。あとは、つぶやきやDMを入力して送信するときに、目的のキャラクターを作成するだけです。
上記の client_args 設定が、シェルや他のプログラムでの文字セットの指定と連動しない場合は、送信される特定のヘッダーをいじる必要があるかもしれません。たとえば、"content-type" を設定するほうが適切なヘッダーである、またはそれを含める必要があることがわかる場合があります (そうすべきではありませんが)。
私のつぶやきのほとんどは Emacs (Twitter モードまたは Emacs バッファー内で Twython スクリプトを呼び出すシェル) を介して送信され、Unicode 5.1 または 5.2 までの UTF-8 文字の全範囲を問題なく送信できると思います。
スクリプトでカスタム ヘッダーを実際に設定する必要はありませんでしたが、それは Emacs、bash (シェル)、Firefox、Thunderbird、GPG (最後のものはありません) のすべてで UTF-8 がデフォルトの文字セットであるためです。 Twitter に影響を与えますが、常に) の使用を奨励する価値があり、最後に Twitter API 自体を使用します。他のすべてのものをデフォルトで UTF-8 を使用するように設定していなかった場合、ほぼ確実に、シェル スクリプトを介して Unicode で問題が発生し、他の場所でも問題が発生する可能性があります。
最後に、ほとんどの UTF-8 文字はスクリプトを介して送信できるが、一部の (通常はあまり一般的でないか、比較的新しい) 文字は送信できないことがわかった場合、その理由はオペレーティング システムでサポートされている Unicode のバージョンと、 /または利用可能な文字セット (フォント)。この問題が発生すると、正しい文字を Twitter に送信できたとしても、コンピューターで表示できなくなるため、実際に問題が発生することになります。一方、その時点に到達すると、少なくともツイートの一部が表示され、エラー メッセージが停止します。
Python Requests のドキュメントと Twython のドキュメントには、カスタマイズされたヘッダーを送信 (POST) するための形式に関する追加の詳細が記載されており、Wikipedia にはヘッダーの種類のリストが含まれています。
ウィキペディアのリストは次のとおりです。
https://en.wikipedia.org/wiki/List_of_HTTP_header_fields
残念ながら、私のスタック アカウントは最近アクティブになったばかりなので、すべての便利なものをリンクすることはできません。リクエストのドキュメント (「より複雑な POST リクエスト」セクションを参照) と Twython のドキュメント (「リクエスト ヘッダー、プロキシなどを操作する」セクションを参照) を確認する必要がある場合があります。