問題タブ [gb2312]

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.

0 投票する
4 に答える
31708 参照

unicode - GB2312をUTF-8に変換します

現在GB2312(簡体字中国語)でエンコードされているローカライズされた言語文字列を含むテキストファイルがありますが、他のすべての言語ファイルはUTF-8です。このファイルを操作するのは非常に難しいと感じています。私のテキストエディタはどれもこのファイルを正しく操作できず、破損し続けるからです。これをUTF-8に変換するためのツールはありますか?また、これを行うことの欠点はありますか?GB2312のままにして、別のエディターを使用する方がよいでしょうか(そうであれば、推奨できますか)。

更新: Windows XP(英語インストール)を使用しています。

アップデート#2: Notepad ++とNotepad2を使用してGB2312ファイルを編集しようとしましたが、どちらもファイルを読み取れず、破損します。

0 投票する
2 に答える
1746 参照

java - 文字がJavaでGB2312かどうかを調べる方法

次のような Java 関数を書きたいと思います: 1 つの文字が GB2312 にない場合、false を返します

0 投票する
2 に答える
5637 参照

php - PHPデコードGB2312

私はIMAP電子メールスクリプトに取り組んでおり、GB2312でコード化された行がいくつかあります(これは中国のエンコードであると思います)、次のようになります=?GB2312?B?foobarbazetc

この文字列の操作を開始するにはどうすればよいですか?チェックmb_list_encodings()しましたが、これはリストされていません。

0 投票する
1 に答える
341 参照

javascript - GBK2312 難問のエンコード

私はアマチュアのコーダーで、小さな問題があります。

私の目標は、2 つのボタンで 1 つのテキスト入力を行うことです。

  • 最初のボタンは、SundayMorning という Javascript を使用して、テキストを (中国語に) 翻訳します。
  • 2 番目のボタンは、テキストを URL に送信します。URl では、中国語のテキストを GBK2312 文字セットでエンコードする必要があります。

見つかったさまざまなコードをダクトテープでまとめて、現在の結果にしました。SundayMorning Javascript の扱いが難しいため、私の解決策は 2 つの入力ボックスを用意することで、2 つ目は非表示にします。

現在、これは機能しません:

  • 何を試しても、GBK2312 で中国語をエンコードできません。
  • おまけの難問: 2 番目のボックスでは、入力した文字を 1 文字ずつコピーしますが、Javascript が返す中国語の翻訳はコピーしません。

ジャンキーなアマチュア コードで申し訳ありません。親切な提案があれば、より賢い人たちに任せます。

0 投票する
2 に答える
2013 参照

python - Python で GB2312 エンコーディングを使用して RSS を解析する方法

GB2312 でエンコードされた RSS フィードがあります

次のコードを使用して解析しようとすると:

フィードを解析できません。

GB2312 でエンコードされた RSS フィードを解析する方法

以下のようにエンコードを使用した後、Plex Media Server からのエラー ログは以下のとおりです。

:

0 投票する
1 に答える
541 参照

java - ジャバのバグ?スキャナで GB2312 ファイルを直接読み取れない

GB3212 エンコーディング (中国語) のファイルがあります。ファイルはここからダウンロードされますhttp://lingua.mtsu.edu/chinese-computing/statistics/char/list.php?Which=MO Windows の wget と同じように、ModernChineseCharacterFrequencyList.html ファイル名に保存されます。

以下のコードは、Java がある方法では最後まで読み取ることができず、別の方法ではできることを示しています。

つまり、コードScannerで作成された場合はscanner = new Scanner(src, "GB2312")機能しません。そして、Scannerで作成された場合scanner = new Scanner(new FileInputStream(src), "GB2312")、それは機能します。

区切りパターンの行は、グリッチが残る別のオプションを示しているだけです。

これは不具合ですか、それとも仕様による動作ですか?

アップデート

コードが機能する場合、すべてのトークンを最後まで読み取るだけです。機能しない場合は、例外やエラーメッセージなしで、ほぼ途中で読み取りをキャンセルします。

ブレークの場所に特異点は見つかりませんでした。また、2^32 のような「魔法の」数も現れませんでした。

更新 2

元々、この動作は Sun の JavaSE 1.6 を搭載した Windows で発見されました。

そして今、OpenJDK 1.6.0_23 を使用する Ubuntu でも同じ動作が見られます

0 投票する
2 に答える
8705 参照

php - PHP-UTF-8から中国語ANSI(GB2312?)-CSVファイルのエクスポート

私はこれを数時間の調査の後に投稿します(数回...)。まだ答えが見つかりませんでした。

私の目標は、PHPを使用してCSVファイルを作成することです。このファイルには中国語のANSIエンコーディングが必要です(簡体字中国語の場合はGB2312だと思いますが、notepad ++ではANSIのみがエンコーディングとして表示されます)。別のツールにインポートする必要があります。

[重要な注意点]

現在、notepad++と中国語をデフォルト言語とするPCでファイルを変換しています。プロセスは次のとおりです。

  • WebアプリからUTF8CSVを取得します
  • 中国のPCでExcel2003を使用してcsvとして保存
  • notepad ++で開き、エンコーディングはすでにANSIです。先頭の「?」を1つ削除してください。ファイルの先頭。

テストを実行しました。.csvファイルを.phpに変更し、次のコードに置き換えて、同じエンコーディングを維持します。

これにより、「ASCII」と出力されます。

次に、CSVの出力を確認する必要があります:GB2312?、ASCII?、ANSI?。私はそれらの違いについてさえはっきりしていません。

また、Excel2007で中国語のPCでCSVとして保存されたファイルはこのツールで問題ないことも読みました。

[/重要な注意点]

現在、私はそれを正しくすることができません!notepad ++で取得したファイルを開くと、UTF-8でエンコードされているものとしてエンコードが表示されます。そして、漢字は見栄えが良いので、「壊れている」ように見えるはずです:-)。

次のヘッダー条件を使用しています。

[追加情報]

私のファイルのコーディング方法は次のとおりです(簡単にするために抽象化しました)

[/追加情報]

また、CSV文字列を印刷する前にiconvを使用してGB2312に変換します(mb_convert_encodingも試しました)

私の.phpファイルはUTF-8エンコーディングで書かれています(BOMなしのUTF-8ではありません)

基本的に、私は常に出力としてUTF-8ファイルを取得します。ANSIが必要です。パラメータ/属性が非常に多いようですが、正しくありません。あなたの助けをいただければ幸いです!

ありがとう!

デビッド

[追加情報]

例として、私のヘッダーの列では、次のエンコード変更があります。

  • PHPソースコード(UTF-8ファイル、英語のコンピューター):序序号(意味:SKU、アイテムコード)
  • 最終的なCSVファイル(ANSIファイル、英語のコンピューター):ÉÌÆ・ÐòºÅ
  • 最終的なCSVファイル(ANSIファイル、中国のコンピューター):序序号

[/追加情報]

0 投票する
1 に答える
833 参照

c - GB2312エンコーディングのファイルに著作権記号を書き込む方法は?

PDFファイルのフッターに著作権記号を書きたいです。8 進コード \251 は、ファイルのエンコーディングがラテン語の場合にのみ機能します。(英語) 出力 pdf が中国語、日本語、韓国語の場合。シンボルのプリントが全く違います。出力ファイルが GB2312 エンコーディングであり、著作権記号のコードが 2 バイト文字 \0xAAC2 であることは既に知っています。

どのように印刷すればよいか調べてみました。sprintf する前に utf16 に変換する必要がありますか?

0 投票する
1 に答える
494 参照

c - cで中国語ロケールで特殊文字を表示する

中国語の文字を表示するために、既存の非 Unicode の C プロジェクトを適応させる必要があります。締め切りが短く、私は C とエンコーディングが初めてなので、GUI アプリケーションでの中国語テキストの表示をサポートするために、システム ロケールを簡体字中国語 PRC に変更するというルートをたどりました。これにより、プロジェクトのエンコーディング (Visual Studio 2010) が簡体字中国語 (GB2312) に変更されました。

特殊文字 (例: 度記号、上付き文字 2 など) が疑問符として表示されることを除いて、すべてが機能します。これは、アスキー テーブルで \260、つまり度記号の 8 進数値を渡していたためだと思いますが、これはもはや gb2312 テーブルでは何にも等しくなりません。 

キーパッドに度記号を表示するワークフローは次のとおりです。 

display_function( データ, '\260' ); //度記号の 8 進数値をキーパッドに渡す 

この display_function は、キーパッドに表示するために整数入力を文字列に変換するために使用されます。 

data->[ pos ] = (char) ch; 

基本的に、これ (およびその他の特殊文字) を正しく表示する必要があります。現在のセットアップを使用してこのシンボルを渡す方法はありますか? 

gb23212 の char リストによると、シンボルはサポートされているため、現在の考えでは、シンボルの 8 進数値を計算し、既存の関数をそのまま維持することです。これらは現在、値を文字として渡します。以下の表を使用します。 

http://ash.jp/code/cn/gb2312tbl.htm

および次の式で 8 進数値を取得します。 

行に関連付けられた 8 進数に 10 を掛けて、列に関連付けられた 8 進数に加算します。 

私はこれがあると信じていますA1E0 x 10 + 3 = 414403. 

ただし、これを display_function に渡そうとすると、「エラー C2022: '268' : 文字に対して大きすぎます」というメッセージが表示されます。

私はこれについて間違っていますか?既存の関数は広く使用されているため、変更したくないのですが、ワイド文字を使用するように関数を変更する必要がありますか? 

上記が複雑で、誤った仮定で満たされている場合は、お詫び申し上げます。私はこれを 1 週間か 2 週間理解しようとしてきましたが、エンコーディング、文字セット、およびロケールがますます混乱しているようです!

前もって感謝します

0 投票する
1 に答える
2332 参照

python - この文字 - ㎜ - は UnicodeEncodeError を発生させます