問題タブ [encoding]
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.
java - シリアライゼーション エンコーディングのテスト
テキスト文字列が特定のエンコーディングでバイト配列にシリアル化されていることを確認/テストする最良の方法は何ですか?
私の場合、XML 構造が可変文字長の UTF-8 エンコーディングを使用してバイト配列にシリアル化されていることを確認したいと考えています。例として、私の現在の醜い手順は、シリアル化する前に 2 バイトを必要とすることが知られている文字を構造体に挿入し、2 バイト文字を ASCII 文字に置き換えて、シリアル化された配列の長さを比較することです。これにより、2 バイト文字を含む配列の長さが +1 である 2 つのシリアル化された配列が生成されます。
さらに、ソリューションがJavaにとってエレガントである場合。バイト配列内のバイト シーケンスを探すエレガントな方法は思いつきません。(UTF-8 で目的の文字表現を表す既知のバイト シーケンスを探すために使用できます。)
asp.net - asp.netページ内のHtmlエンティティはどのようになっていますか?
asp.netページ内で使用する必要があります
または
どちらの例も同じ出力です。asp.netはすべてのページをutf-8にエンコードするので、htmlエンティティを使用する必要はありませんね。
php - PHPの奇妙な文字
これは私を夢中にさせています。
動作していないテストサーバーにこの1つのphpファイルがあります。
出力します
こんにちは
新しいファイルを作成し、同じスクリプトをコピーして貼り付けると、機能します。なぜこの1つのファイルがいつも奇妙なキャラクターを私に与えるのですか?
c# - データを使用する XmlReader または XPathDocument を作成する前に、XML ベースのデータ ソースから無効な 16 進文字を削除するにはどうすればよいですか?
XmlReader で使用する前に XML ベースのデータ ソースをクリーンアップして、XML に課せられた 16 進文字の制限に準拠していない XML データを適切に使用できるようにする簡単で一般的な方法はありますか?
ノート:
- このソリューションでは、UTF-8 以外の文字エンコーディングを使用する XML データ ソースを処理する必要があります (たとえば、XML ドキュメント宣言で文字エンコーディングを指定するなど)。無効な 16 進文字を削除する際に、ソースの文字エンコーディングを変更しないことが、大きな問題となっています。
- 無効な 16 進数文字の削除では、16 進数でエンコードされた値のみを削除する必要があります。これは、たまたま 16 進数文字に一致する文字列を含むデータに href 値が含まれていることがよくあるためです。
バックグラウンド:
特定の形式 (Atom フィードや RSS フィードなど) に準拠する XML ベースのデータ ソースを使用する必要がありますが、XML 仕様に従って無効な 16 進数文字を含む公開済みのデータ ソースを使用できるようにしたいと考えています。
.NET では、XML データ ソースを表す Stream があり、XmlReader や XPathDocument を使用してそれを解析しようとすると、XML データに無効な 16 進文字が含まれているために例外が発生します。この問題を解決するための現在の試みは、ストリームを文字列として解析し、正規表現を使用して無効な 16 進数文字を削除または置換することですが、よりパフォーマンスの高いソリューションを探しています。
encoding - 文字エンコーディングの問題をどのようにトラブルシューティングしますか?
文字なしの醜いボックスしか表示されない場合、何が問題なのかを突き止めるためにどのようなツールまたは戦略を使用しますか?
(私が直面している特定のシナリオは、日本語の文字を表示する必要がある <select> 内の文字なしボックスです。)
java - このコードを作成して、jQuery/Ajax で UTF-8 形式のテキストエリアを送信するにはどうすればよいですか?
Ajax で UTF-8 文字列を含むフォームを送信する際に問題があります。Tomcatサーバーで実行されるStruts Web アプリケーションを開発しています。これは、UTF-8 で動作するようにセットアップした環境です。
Tomcat のファイルのタグに属性
URIEncoding="UTF-8" useBodyEncodingForURI="true"
を追加しました。Connector
conf/server.xml
私は
utf-8_general_ci
データベースを持っています次のフィルタを使用して、リクエストとレスポンスが UTF-8 でエンコードされていることを確認しています
/li>このフィルターを WEB-INF/web.xml で使用します
JSON 応答に次のコードを使用しています。
/li>
すべて正常に動作しているようです (データベースからのコンテンツは適切に表示され、データベースに UTF-8 で保存されているフォームを送信できます)。問題は、 Ajax でフォームを送信できないことです。私は jQuery を使用していますが、問題は Ajax リクエストに contentType フィールドがないことだと思いました。しかし、私は間違っていました。IDと本文を含むコメントを送信するための非常に単純なフォームがあります。body フィールドは、スペイン語、ドイツ語など、さまざまな言語にすることができます。
を含む body textarea でフォームを送信するとcontraseña
、Firebugに次のように表示されます。
リクエスト ヘッダー
- ホスト localhost:8080
- Accept-Charset ISO-8859-1、utf-8;q=0.7;*q=0.7
- Content-Type application/x-www-form-urlencoded; 文字セット UTF-8
Firebugでパラメーターを指定して Copy Locationを実行すると、エンコーディングが既に間違っているように見えます。
これは私のjQueryコードです:
jQuery を使用してフォームを送信すると、サーバー側で次のエラーが発生します (私はHibernateを使用していることに注意してください)。
encoding - 一意で、小さく、ランダムで、使いやすいキーを生成するにはどうすればよいですか?
数か月前、私は Web アプリケーション用に一意でランダムなコードを実装する任務を負っていました。コードはユーザーフレンドリーでできるだけ小さくする必要がありますが、基本的にランダムである必要があります (ユーザーがシーケンスの次のコードを簡単に予測できないようにするため)。
最終的に、次のような値が生成されました。
残念ながら、私は実装に満足することはありませんでした。Guid は問題外でした。ユーザーが入力するには大きすぎて難しかったのです。4 桁または 5 桁の文字/数字の行に沿って何かを期待していましたが、特定の実装では、エンコードした場合、著しくパターン化されたシーケンスが生成されます。 9 文字未満。
最終的に行ったことは次のとおりです。
データベースから一意の連続した 32 ビット ID を取得しました。次に、それを 64 ビット RANDOM 整数の中央ビットに挿入しました。簡単に入力および認識できる文字 (L、l、1、O、0 などの混同しやすい文字をスキップする AZ、az、2-9 など) のルックアップ テーブルを作成しました。最後に、そのルックアップ テーブルを使用して、64 ビット整数を base-54 エンコードしました。上位ビットはランダムで、下位ビットはランダムでしたが、中央のビットは連続していました。
最終結果は、GUID よりもはるかに小さく、ランダムに見えるコードでしたが、まったくそうではありませんでした。
この特定の実装に満足したことはありません。あなたたちはどうしたでしょう?
php - Base64 エンコード イメージ
Firefox/IE 用のオープン検索アドオンを作成していますが、画像を Base64 でエンコードする必要があります。
PHPしか知らない
php - 未知の文字を出力するPHPインクルード関数
php インクルード関数を使用すると、インクルードは正常に実行されますが、インクルードの出力が出力される前に char も出力されます。char は 16 進値 3F であり、どこから来ているのかわかりませんが、すべてのインクルードで発生します。
最初はファイルのエンコーディングかと思いましたが、問題ないようです。私はそれを実証するためにテストケースを作成しました:(リンクが機能しなくなりました)http://driveefficiently.com/testinclude.phpこのファイルは以下のみで構成されています:
および include.inc は以下のみで構成されます。
それでも、出力は次のとおりです。ランダムな値を持つ char です。私がその起源を知らないのはこの値であり、時々私のサイトを少し台無しにしています。
これがどこから来ているのかについてのアイデアはありますか? 最初はファイルのエンコーディングが関係しているのではないかと思いましたが、問題はないと思います。