問題タブ [shift-jis]
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.
html - HTML 日本語エンコーディングの問題
日本語 OS の HTML ページで問題が発生しています。
日本語 JIS にエンコードすると、HTML フォーム ソースは次のようになります。
そのため、文字列の後<%
、フォームが壊れて、フォームの残りの部分を表示できなくなります。
この種の問題に対して私ができることを提案してください。
java - 日本語の漢字を Shift-JIS から UTF-8 に変換する
日本語のテキストを含むCSVファイルを読み込んで、このファイルからDBにデータを書き込もうとしています。CSV は、私があまり慣れていない Flex コードを介してアップロードされます。しかし、私のバックエンド側には、ファイルの内容を含む単純な byte[] があります。私は次のコードを使用しています:
strLine 変数をデバッグしているときに、日本語の漢字の代わりに疑問符しか表示されません (特に、漢字の裵でテストしました)。他の日本語の文字 (たとえば、〒文字) は問題ないようです。デバッグ ウィンドウ (および後で私の DB) では、次のように表示されます。
私が同じことをしているが、コードに Const.ENCODING_SHIFT_JIS の代わりに UTF-8 と Const.UTF-8 をエンコードするファイルがある場合、すべて正常に動作します。ただし、クライアントは Shift-JIS のサポートが必要です。たぶん、誰かがこの問題を解決する方法を教えてくれるかもしれませんが、少なくともどの特定の領域 (flex、java、shift-jis エンコーディング自体...) である可能性がありますか?
c# - ファイルを Shift-JIS から UTF8 に変換 ディスクから再読み込みせずに BOM なし
Shift-JIS や UTF8 NoBOM など、さまざまな形式のファイルを扱っています。少しの言語知識を使用して、ファイルが UTF8 または ShiftJIS として正しく解釈されているかどうかを検出できますが、ファイルが読み込んだタイプではないことが検出された場合、私の新しいエンコーディングを指定してファイルを再読み込みする必要なく、インメモリ配列。
現在、Shift-JIS を想定してファイルを読み込んでいます。
そして、それが既知の形式 (BOM がある) であるか、データが Shift-JIS として意味があるかを判断する魔法を実行した後、すべて問題ありません。ただし、データがゴミの場合は、次の方法でファイルを再読み取りしています。
この再読み取りステップを回避し、可能であればメモリ内のデータを再解釈しようとしています。
それとも魔法がすでに起こっていて、二重の I/O アクセスについて不必要に心配しているのですか?
encoding - あいまいな文字セット/エンコーディングの文字マップを取得する (例: ibm-943_P14A-2000)
最近、当社のソフトウェアで、特定のあいまいな漢字 (漢字) が Shift-JIS エンコーディングで検出されないという問題が発生しました。Shift-JIS 文字列を読み込んで「範囲外」の漢字を見つけ、代わりに文字列を UTF-8 に切り替えるアルゴリズムを作成しました (文字数は多くなりますが、より多くのスペースを使用します)。
カバーされない漢字を見つけるには、ibm-943_P14A-2000 エンコーディングの文字マップを入手する必要があります。
これらの文字セットのマップをどこで見つけるのでしょうか? Web 検索を介して UTF8 ルックアップなどを見つけるのは非常に簡単ですが、このエンコーディングでどの値がどの値に対応するかを示すチャート/テーブル/ファイルを見つけることができません。
どんなに曖昧でも、どんな方向にでも私を向けることができれば、私はとても感謝しています.
android - 円記号 (U+00A5) の Android Shift-JIS エンコーディングが -4,-4 を生成するのはなぜですか?
次のコードを実行すると、間違った値が生成されるようです。
[ -4, -4 ] を生成しますが、 [ 0x5c ] を期待します
「Shift-JIS」、「shift_jis」、「cp932」など、さまざまな代替名を試しましたが、すべて同じ結果が得られました。
結果のデータを Shift-JIS デコーダーにフィードすると、例外が発生します。java.nio.charset.UnmappableCharacterException: Length: 2
つまり、次のように構成されたデコーダーを使用します。
しかし、エンコーダーの出力が間違っているように見えることを考えると、デコーダーは関係ないと思います。私のポイントは、実際のバイトに関係なく、エンコーダーはデコードできないデータを生成するということです。
全角円 (U+FFE5) は [ -127 (0x81), -113 (0x8F) ] にエンコードされ、正しくデコードされます。
不思議なことに、[ 92 (0x5C) ] をデコードしようとすると、これは、単一幅円の Shift-JIS エンコーディングであると私が考えるものであり、Android/Java デコーダーはバックスラッシュを生成し、文字を 92 のままにします。
エンコーダーが特定の文字をサポートしていない場合は、「?」などの置換文字が必要です。しかし、-4 (0xFC) は有効な Shift-JIS ではないようです。Unicode 置換文字 U+FFFD でさえありません。次の行を使用すると、エンコーダーが [-4, -4] を使用するように構成されているように見えることがわかります。
- では、単一幅の円が Shift-JIS にマッピングされていないのはなぜですか?
- [-4, -4] は賢明なエンコーダーの置き換えですか?
- デコーダが円 (U+00A5) への 0x5C マッピングをサポートしないのはなぜですか?
- 0x5C が正しいエンコーディングでない場合、何ですか?