C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: shift_jisの文字化けについて


(過去ログ 29 を表示中)

[トピック内 12 記事 (1 - 12 表示)]  << 0 >>

■13823 / inTopicNo.1)  shift_jisの文字化けについて
  
□投稿者/ たろ (3回)-(2008/02/05(Tue) 13:31:50)

分類:[.NET 全般] 


環境は、visualstudio2005でASP.Net(c#)でのWEB開発を行っております。

今現在WEB.CONFIGで下記の設定をしています。
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis"/>

ASPファイルにも下記の設定をしています。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">

この状態で「&#31961;」という文字を画面に表示すると「?」に文字化けしてしまいます。

responseEncodingをUTF-8に設定すれば、表示はできるのですが、
また、違う問題が発生する為、なるべく変更したくはありません。

何か解決策はあるでしょうか?

また、一般的にglobalization の設定は何を設定するものなのでしょうか?

引用返信 編集キー/
■13825 / inTopicNo.2)  Re[1]: shift_jisの文字化けについて
□投稿者/ Hongliang (235回)-(2008/02/05(Tue) 13:42:45)
2008/02/05(Tue) 13:56:32 編集(投稿者)

Shift_JIS じゃ扱いようのない文字なのでどうしようもないです。

[追記]
あれ、よく考えたら数値参照するなら HTML の文字セットに関わらず Unicode 文字は表示できるはず(フォントが対応してるなら)。
数値参照させてますか? 文字を直接書き込んでませんか?
引用返信 編集キー/
■13828 / inTopicNo.3)  Re[2]: shift_jisの文字化けについて
□投稿者/ なちゃ (103回)-(2008/02/05(Tue) 14:31:18)
?になるってことはそのまま出力しようとしてるんじゃなかろうか
引用返信 編集キー/
■13835 / inTopicNo.4)  Re[3]: shift_jisの文字化けについて
□投稿者/ たろ (4回)-(2008/02/05(Tue) 15:59:45)

返信ありがとうございます。

確かにDBから取得した値をそのままテキストやラベル、グリッドに設定しています。

数値参照を行えば表示できるということですが、
それはテキストやラベル、グリッドに設定する前に16進などに変換して表示させるということでしょうか?

数値参照を調べたのですが、いまいちやり方がわかりません。。

C#でそんな関数があるのでしょうか?あったらいいな・・・。

引用返信 編集キー/
■13837 / inTopicNo.5)  Re[4]: shift_jisの文字化けについて
□投稿者/ はつね (431回)-(2008/02/05(Tue) 16:22:09)
はつね さんの Web サイト
No13835 (たろ さん) に返信
> 数値参照を行えば表示できるということですが、
> それはテキストやラベル、グリッドに設定する前に16進などに変換して表示させるということでしょうか?
ラベルなどに「&#31961;」と表示する事でUNICODEな漢字が表示されます。
ブラウザの文字エンコーディングがSHIFT_JISでもOK。


引用返信 編集キー/
■13840 / inTopicNo.6)  Re[5]: shift_jisの文字化けについて
□投稿者/ たろ (5回)-(2008/02/05(Tue) 16:32:31)

返信ありがとうございます。

度々申し訳ないのですが、
DBから取得した値を「&#31961;」に変換する方法はどうすればいいのでしょうか?

何かそういった関数があるのでしょうか?

引用返信 編集キー/
■13842 / inTopicNo.7)  Re[4]: shift_jisの文字化けについて
□投稿者/ シャノン (282回)-(2008/02/05(Tue) 16:38:12)
No13835 (たろ さん) に返信
>
> 返信ありがとうございます。
>
> 確かにDBから取得した値をそのままテキストやラベル、グリッドに設定しています。
>
> 数値参照を行えば表示できるということですが、
> それはテキストやラベル、グリッドに設定する前に16進などに変換して表示させるということでしょうか?
>
> 数値参照を調べたのですが、いまいちやり方がわかりません。。
>
> C#でそんな関数があるのでしょうか?あったらいいな・・・。

DBのコードページは何なんですかね?
DBの中のデータが既に ? に化けていたりしませんか。
引用返信 編集キー/
■13843 / inTopicNo.8)  Re[5]: shift_jisの文字化けについて
□投稿者/ たろ (6回)-(2008/02/05(Tue) 16:40:30)
返信ありがとうございます。

DBはオラクル10Gを使用していて、DBの中では文字化けしていません。
因みに、テキストに設定する時まで文字化けしていません。


引用返信 編集キー/
■13844 / inTopicNo.9)  Re[6]: shift_jisの文字化けについて
□投稿者/ IIJIMAS (65回)-(2008/02/05(Tue) 16:49:51)
No13840 (たろ さん) に返信
> DBから取得した値を「&#31961;」に変換する方法はどうすればいいのでしょうか?

DBから取得後の時点で化けていない前提で、string変数に入っていたら

たとえば
private static string 変換(string str)
{
    StringBuilder sb = new StringBuilder();
    foreach (char c in str)
    {
        sb.AppendFormat("&#{0};", (int)c);
    }
    return sb.ToString();
}

とかダメですか?

もっと正式な方法があるかもしれませんが…。

引用返信 編集キー/
■13845 / inTopicNo.10)  Re[6]: shift_jisの文字化けについて
□投稿者/ はつね (433回)-(2008/02/05(Tue) 16:50:50)
はつね さんの Web サイト
No13840 (たろ さん) に返信
> DBから取得した値を「&#31961;」に変換する方法はどうすればいいのでしょうか?

えっ〜と、DBから取得した値が「&#31961;」であることはどのように確認されましたでしょうか。
それをコード化すればOKじゃないかと。


引用返信 編集キー/
■13848 / inTopicNo.11)  Re[6]: shift_jisの文字化けについて
□投稿者/ なちゃ (104回)-(2008/02/05(Tue) 17:12:25)
とりあえず、確実に表示できる文字に関してはそのまま出力した方がいいんでないかと…
っていうかその前に、そもそもSJIS外の文字をまともに扱うならできればエンコード変えた方がいいと思うんですが
そうもいかないんですかね〜

引用返信 編集キー/
■13849 / inTopicNo.12)  Re[7]: shift_jisの文字化けについて
□投稿者/ たろ (7回)-(2008/02/05(Tue) 17:21:41)
返信ありがとうございます!!

IIJIMASさんの記述を見て、やっと分かりました。。
すいません。。

なちゃさんのおっしゃるとおり、エンコードを変えるのがベストなんですけどね・・。
そちらも影響範囲を調査中です。。

エンコードが変更できなかった場合の対応として、表示可能かどうかを知りたかったのです。。

みなさん、ご親切にありがとうございました!!
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -