UTF8からGB2312への乱雑なコード問題の解決策
2022-01-17 06:47:49
最近、小さなプロジェクトをやっていて、このような問題に遭遇したので、まとめとして記録しておきたいと思います。
このプロジェクトは2つのパートに分かれており、1つはニュースのデータ収集、もう1つは収集した情報の監査、そして最後にXMLファイルを生成することです。
ユーザーがデータを収集・編集した後、ACCESSファイルをエクスポートし、このファイルを情報監査システムにインポートすることになっています。ACCESSライブラリのニュース情報を格納するフィールドタイプはntext型、監査システムライブラリの対応するフィールドはvarchar(max)型であるが、インポート後、一部の空白文字がクエスチョンマーク(?)として現れ、文字化けすることが判明した。実際には、テストの後、それは空白(スペース)文字ではなく、特殊文字である、どのように行うには?何度かテストした結果、varchar(max)型をnvarchar(max)型に変更すれば、インポートしたデータにそのような問題が発生しなくなることがわかりました。
しかし、後でテストプロセスでは、我々は、インポートされたコレクションの情報が(.netプログラムの編集機能を介して)変更された後、データベース内のこの情報は再び問題が文字化け表示されることがわかります、研究この方法で書かれた挿入文で見つかった後にそのような問題は、テーブル名(ニュース)値(N '&quotに挿入などを持っていない、+更新値+ " あなたはBaiduに行くとあなたが理解できる、なぜN .を持って追加で見ることができます。
ここでようやく心が休まるのだが、その後に続く疑問でまた憂鬱になってしまうのだ。
と落ち込んでいたところ、ふと思いついてVSのデバッグ機能を使って、この特殊文字が何なのかを確認しました。ToCharArray();を一つずつ実行していくと、文字化けの原因となっている文字が ' '引用符の中の空白に注意、これはスペースではなく、GB2312では認識できない特殊な文字であることがわかったのです。すぐに対応したところ、案の定、コードが乱れる問題は解決した。このキモいことで1日半を無駄にした、と本当に落ち込みました。
なお、この値はデバッグ時から使用し(これが本当に文字化けの原因となる特殊文字なので)、デバッグ時には偶数フォームに貼り付ける必要があります。
content = content.Replace(" ", " ");
このプロジェクトは2つのパートに分かれており、1つはニュースのデータ収集、もう1つは収集した情報の監査、そして最後にXMLファイルを生成することです。
ユーザーがデータを収集・編集した後、ACCESSファイルをエクスポートし、このファイルを情報監査システムにインポートすることになっています。ACCESSライブラリのニュース情報を格納するフィールドタイプはntext型、監査システムライブラリの対応するフィールドはvarchar(max)型であるが、インポート後、一部の空白文字がクエスチョンマーク(?)として現れ、文字化けすることが判明した。実際には、テストの後、それは空白(スペース)文字ではなく、特殊文字である、どのように行うには?何度かテストした結果、varchar(max)型をnvarchar(max)型に変更すれば、インポートしたデータにそのような問題が発生しなくなることがわかりました。
しかし、後でテストプロセスでは、我々は、インポートされたコレクションの情報が(.netプログラムの編集機能を介して)変更された後、データベース内のこの情報は再び問題が文字化け表示されることがわかります、研究この方法で書かれた挿入文で見つかった後にそのような問題は、テーブル名(ニュース)値(N '&quotに挿入などを持っていない、+更新値+ " あなたはBaiduに行くとあなたが理解できる、なぜN .を持って追加で見ることができます。
ここでようやく心が休まるのだが、その後に続く疑問でまた憂鬱になってしまうのだ。
と落ち込んでいたところ、ふと思いついてVSのデバッグ機能を使って、この特殊文字が何なのかを確認しました。ToCharArray();を一つずつ実行していくと、文字化けの原因となっている文字が ' '引用符の中の空白に注意、これはスペースではなく、GB2312では認識できない特殊な文字であることがわかったのです。すぐに対応したところ、案の定、コードが乱れる問題は解決した。このキモいことで1日半を無駄にした、と本当に落ち込みました。
なお、この値はデバッグ時から使用し(これが本当に文字化けの原因となる特殊文字なので)、デバッグ時には偶数フォームに貼り付ける必要があります。
コピーコード
コードは以下の通りです。
content = content.Replace(" ", " ");
関連
-
Aspのソースコードを用いたXMLとのインタラクションの一例
-
XMLでHTMLを表示するためのヒント
-
xpath入門_Power Node Java Academy
-
Powerbuilderでのxmlアプリケーションの例(pb)
-
WAP wml + ASPクエリに初挑戦
-
Xml入門_Power Node Java Academy
-
コードレスでxmlを書くヒント解決策
-
大容量のXMLファイルを読み込むと問題が発生する
-
xslt を使って xml を xhtml にパースするためのコード
-
xmlをxsltスタイルでxhtmlにパースするクラス TransformBinder (FFとIE7.0に対応)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン