問題タブ [utf-7]
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.
c# - .NET の IMAP フォルダー パス エンコーディング (IMAP UTF-7)?
IMAP 仕様 ( RFC 2060、5.1.3. Mailbox International Naming Convention) では、フォルダ名で非 ASCII 文字を処理する方法が説明されています。変更されたUTF-7 エンコーディングを定義します。
慣例により、国際メールボックス名は、[UTF-7] で説明されている UTF-7 エンコーディングの修正版を使用して指定されます。これらの変更の目的は、UTF-7 に関する次の問題を修正することです。
UTF-7 ではシフトに「+」文字を使用します。これは、メールボックス名、特に USENET ニュースグループ名での "+" の一般的な使用と競合します。
UTF-7 のエンコーディングは、「/」文字を使用する BASE64 です。これは、一般的な階層区切り文字としての「/」の使用と競合します。
UTF-7 では、エンコードされていない "\" の使用が禁止されています。これは、一般的な階層区切り文字としての「\」の使用と競合します。
UTF-7 では、エンコードされていない "~" の使用が禁止されています。これは、一部のサーバーでのホーム ディレクトリ インジケータとしての「~」の使用と競合します。
UTF-7 では、複数の代替形式で同じ文字列を表すことができます。特に、印刷可能な US-ASCII 文字は、エンコードされた形式で表すことができます。
変更された UTF-7 では、「&」を除く印刷可能な US-ASCII 文字はそれ自体を表します。つまり、オクテット値が 0x20 ~ 0x25 および 0x27 ~ 0x7e の文字です。文字「&」(0x26) は、2 オクテットのシーケンス「&-」で表されます。
他のすべての文字 (オクテット値 0x00-0x1f、0x7f-0xff、およびすべての Unicode 16 ビット オクテット) は、"/" の代わりに "," が使用されるという [UTF-7] からのさらなる変更を加えて、変更された BASE64 で表されます。
変更された BASE64 は、それ自体を表すことができる印刷 US-ASCII 文字を表すために使用してはなりません。"&" は、修正された BASE64 にシフトするために使用され、"-" は、US-ASCII にシフトするために使用されます。すべての名前は US-ASCII で始まり、US-ASCII で終わる必要があります (つまり、Unicode 16 ビット オクテットで終わる名前は「-」で終わる必要があります)。
実装を開始する前に、私の質問: ジョブを実行する.NET コード/ライブラリがそこに (またはフレームワーク内にさえ) ありますか? .NET リソースが見つかりませんでした (他の言語/フレームワークの実装のみ)。
ありがとうございました!
.net - .NET でのインテリジェントな UTF-8 から UTF-7
UTF-8 文字の文字列があり、それらを古いシステムに UTF-7 として出力する必要がある場合、これに関して 2 つの質問があります。
UTF-8 文字を含む文字列 s を、それらの文字を含まない同じ文字列に効率的に変換するにはどうすればよいですか?
「O」のような拡張文字を最も近い拡張されていない同等の「O」に変換する簡単なものはありますか?
asp.net-mvc - すべての ASP.NET MVC HTTP 応答に「charset」を追加する
すべての「通常の」ビューを指定する簡単な方法はありますcharset=utf-8
かContent-Type
? View()
を指定できるオーバーライドがなくContent-Type
、ActionResult
友人も何も公開していないようです。動機は明らかに、「正しい」エンコーディング タイプを推測する Internet Explorer を回避することです。これは、UTF-7 XSS 攻撃を回避するために行いたいことです。
c# - Utf7Encoding テキストの切り捨て
「+4」シーケンスを切り捨てる Utf7Encoding クラスに問題がありました。なぜこれが起こったのかを知りたいと思います。byte[] 配列から文字列を取得するために Utf8Encoding を試しましたが、うまくいくようです。Utf8 でそのような既知の問題はありますか? 基本的に、この変換によって生成された出力を使用して、rtf 文字列から html を作成します。
スニペットは次のとおりです。
java - Java文字セットを手動でロードする
私はJavaMailAPIを使用していくつかの作業を行っていますが、UTF7 / unicode-1-1-utf-7など、Javaがネイティブに(設計上)サポートしていないエンコーディングに遭遇しました。特にそのエンコーディングについては、JavaのJUTF7実装とCharset
UTF7を見つけましたCharsetProvider
。ただし、クラスパスにjutf7.jarを追加しても、まだUnsupportedEncodingException
sが返され、unicode-1-1-utf-7は間違いなくJUTF7のエイリアスの1つです。
を手動でロードする方法、Charset
またはCharset
がロードされていることを確認して、原因として除外できるようにする方法はありますか?
php - PHP、IMAP、Outlook 2010-フォルダ名のエンコーディングは異なりますか?
PHP(symfony2を使用)で電子メールクライアントを開発していますが、名前にASCII以外の文字が含まれるフォルダーに問題があります。
phpアプリで作成されたフォルダーは、同じアプリで正しく表示されます。Outlookでも同じですが、Outlookで作成したものはOutlookで見栄えがします。それ以外の場合はそうではありません。Outlookで作成されたフォルダは、phpでは正しく表示されません。その逆も同様です。
utf-7を使用してphpでフォルダー名をエンコードしています。Outlookを使用するエンコーディングはどれですか?
例:「Wysłąne」(「送信済み」を意味するスペルミスのポーランド語)という名前のフォルダー。最初のフォルダーはphpによってutf7でエンコードされ、2番目のフォルダーはOutlookで作成されます。
PHP:
見通し:
なぜ違うのですか?同じエンコーディングでそれを作る方法は?
parsing - 文字エンコーディングが UTF-7 の受信トレイでメール メッセージを検索する方法
送信者の連絡先レコードに対して、メッセージを受信トレイから CRM に移動するスクリプトがあります (CiviCRM のナイス ワン!)。
誰かが UTF-7 エンコーディングでメッセージを送信したため、動作を停止しました。スクリプトはそれを UTF-8 に変換できないか変換しません。
現在、1,000 を超えるメッセージのバックログがあります。
この受信トレイで針を見つけるにはどうすればよいでしょうか?
メッセージを UTF-7 エンコーディングで一覧表示するレポートを生成するスクリプト、または問題のあるメッセージを見つけるための他の卑劣な方法を知っている人はいますか?
python - Python用のIMAPフォルダパスエンコーディング(IMAP UTF-7)
IMAP4UTF-7フォルダーパスエンコーディング用の「公式」関数/ライブラリがPythonに存在するかどうかを知りたいです。
私はimapInstance.list()
次のパスを取得しますIMAPUTF-7エンコード:
次のエンコーディングを行う場合:
私は得る:
これはUTF-7ですが、IMAPUTF-7でエンコードされていません。Test+AOk-
IMAP UTF-7でエンコードされたバージョンを取得するには、代わりにTest&AOk-
公式の関数またはライブラリが必要です。
ios - iOS UTF7 エンコード/デコード
UTF7 デコードに問題があります。次のサンプル コードを作成して、問題を切り分けることができました。
どこ:
strlen(testBuffer) は 508、
「codePage」は 65000 です。
'stringEncoding' は 2214592768 です (予想どおり、おそらく UTF-7 ですが、明確な確認が見つかりません…)。
'+ADw-' は '<' の UTF7 シーケンスです。
この例では、testString は常に nil であるため、変換は失敗します。しかし、ここに奇妙なことがあります:
- testBuffer から「a」を 1 つだけ削除すると、変換が機能し、testString が適切に作成されます。'a' を 1 つ以上追加すると、機能しません。
- 最後に utf7 でエンコードされたシンボル (この例では「+ADw-」のみ) を「損傷」すると、正常に動作します。「.ADw-」または「+ADw」に変更できます。バッファは適切に変換されます。もちろん、「破損した」シンボルはデコードされず、文字どおりに書かれているだけですが、変換は機能します。NSString に「…aaaaa.ADw-」を生成します。バッファを 1 カットすることもできるので、「…aaaaa+ADw」としますが、これも適切に変換されます (UTF7 シンボルが不完全であるため)。
- UTF7 シンボルの後に、バッファの最後に ASCII 文字を追加すると、機能します。つまり、"…aaaaa+Adw-a" は NSString "…aaa>a" に変換されます。
- バッファーに含まれる UTF7 シンボルが増えると、失敗し始める長さが変わります。したがって、常に 508 文字以上であるとは限りません。
- 最後に他の UTF7 記号を使用できます。それは問題ではありません。
また、initWithBytes: メソッドを initWithCString に置き換えようとしました。考えられるすべてのケースをチェックしたわけではありませんが、テストしたすべてのケースで initWithBytes: と同じように動作します。iOS 6.0 でテストを実行しました。
UTF7 でエンコードされた文字列を適切に処理する方法はありますか?
python - Python 2.7.3 UTF-8 エンコーディングの元に戻せない
Web をクロールしているときに、いくつかの非常に厄介な文字列に出くわしました。UTF-7
特に、あるページがであると宣伝していますがUTF-7
、それほど問題ではないようです。テキストの正確な意図を表現することには関心がありませんがUTF-8
、ダウンストリームでの消費に取り掛かる必要があるだけです。
私が直面している奇妙な点は、最初にエンコードしてからデコードできない文字列を取得できることです。unicode
UTF-8
エラーを表示しながら、できる限り文字列を抽出しました。
Mac 10.5.7 の Python 2.7.1 と 2.6.7、CentOS の Python 2.7.2 と 2.6.8 など、多くのシステムでこれを試してみました。残念ながら、動作するために必要なマシンでは、Ubuntu 12.04 の Python 2.7.3 で失敗します。失敗したシステムでは、次のように表示されます。
動作しているシステムと動作していないシステムで見られる中間値の一部を次に示します。
この 2 つは、最初のエンコード後には異なりますが、その理由はまだ謎です。2.7.2と 2.7.3 の間にこの動作を説明するものがないように見えるため、いくつかの文字テーブルまたは補助ライブラリが不足していることに問題があると思います。正常に動作するシステムでは、Unicode エンティティを印刷すると中国語の記号が表示されますが、表示されないシステムではプレースホルダーが表示されます。
これは私の質問に私を残します: そのような問題は誰にでもなじみがあるように見えますか、それとも問題が発生しているシステムで欠落している可能性のあるサポートライブラリを知っている人はいますか?