- PR -

文字コードの変更

投稿者投稿内容
hal
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-03-01 14:45
お世話になっております。

質問させて下さい。
当方、vs.net2003,c#にてwebアプリケーションの開発を行っております。
当初文字コード「shift_jis」にて開発を行っていましたが、oralceからのデータ取得で「〜」が「?」に文字化けしてしまうので「utf_8」に変更してみようと思い、web.configのglobalizationのrequest,response共に変更してみました。

すると「shift_jis」の時には動いていたjavascriptが動かなくなってしまいました。どうやら変更前は認識されていた文字列が認識されなくなっているようです。
「shift_jis」、「utf_8」等でソリューション全体を検索してみましたが、指定しているのはweb.configのみのようなのですが…(各ページプロパティでの指定はしてません)

ソース以外で何処か文字コードに関するプロパティがあるのでしょうか?
心当たりがある方、教えて下さい。
hal
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-03-01 19:59
自己レスです。

JavaScriptのファイルの保存オプションが「シフトjis」になっていたので、これを「utf-8」に直せばと思ってやってみましたが、やはりダメでした…。

1度文字コードを決めて開発してしまうと以後変更できなくなったりするものでしょうか?
JavaScriptの問題だけでなく、文字化けもしてしまいますし。

ヒントでも結構ですので、ご教授よろしくお願いします。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-03-01 20:30
halさん、こんばんは。

引用:

「〜」が「?」に文字化けしてしまうので


.NET Framework Data Provider for Oracle をお使いですか?
.NET Framework Data Provider for OLE DB を使用すればこの問題は起きないようです。

ちなみに私の場合、取得したデータ中の Unicode:301C を Unicode:FF5E に Replace して対処しました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-01 22:02
 Oracleのバージョンは?9iなら、データベースの方の文字コードを"_TILDE"付きのコードにします(データベースの再作成)。


 その他の化ける文字は下の私のウェブページを参照してください。
#たぶん、がっかりすることが書いてあると思います。。。
hal
常連さん
会議室デビュー日: 2004/02/17
投稿数: 29
投稿日時: 2004-03-02 15:11
お世話になっております。

きくちゃんさん、Jittaさん、レスありがとうございます。
データプロバイダーは「.NET Framework Data Provider for Oracle 」を使用しています。今からこちらを変更するとなると、またテストを1からやり直しになってしまうので難しそうです。(下記の考察のからみもありますので)

oracleのバージョンはOracle9iR2を使っています。
色々試してみたのですが、同環境の別の開発アプリ(文字コード:utf-8)では文字化けが起こりませんでした。そして当方開発のアプリ(文字コード:shift-jis)では「〜」が「?」に文字化けしました。どうやらoracle、アプリ間のやりとりが問題ではなく、.net上での文字コード(shift-jis)が文字化けに起因しているようです。

replaceについて考えてみましたが、stringに対するreplaceは問題無さそうなのですがdatasetで取得してそれをbindしているようなものへのreplace方法がよくわかりません。一旦datasetで取得してそれを一つ一つreplaceして別のdatasetに移し変えるとか…、ものすごくレスポンスが悪くなりそうですよね。

そこで、話が元に戻ってしまうのですが開発アプリの文字コードをshift-jisからutf-8に変更したいのですが、そうするとJavaScriptが動かない、DB取得情報が文字化けする等々の問題でまともに動きませんでした。
変更した部分はweb.configのglobalizationの部分なのですが、文字コードを変更するにあたって他に変更すべき部分はあるのでしょうか?

回りくどい説明になってしまって申し訳ありませんが、よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-02 16:31
http://otn.oracle.co.jp/software/tech/java/jdbc/nlsalart/nlsalart.html
ここに書いてあるのですが、「問題」ではなく「不幸な副作用」なのです。
#「不幸な副作用」が発生することが「問題」ではあるのですが

 OTNでも何度か出てきていますが、結局力業で置き換えるしかないようです。
なかし
会議室デビュー日: 2004/03/08
投稿数: 2
投稿日時: 2004-03-08 19:20
はじめまして、なかし と申します。ASP.NET(VB.NET)にてWebアプリケーション開発を始めてまもない初心者です。Oracle Data Provider for .NET使用しておりますが、同様にOracleからの取得文字化けに悩んでおります。Replaceを使用する事で置き換えが可能とのお話なのですが、Unicodeの指定(301CとFF5E)をどの様に行えばよろしいのでしょうか?いろいろと調べているのですがUnicodeのコードをプログラム上で文字コードとして判断させるなんらかの方法を見つけきれてない状況です。
大変申し訳ないのですがどなたかご教授頂けないでしょうか?よろしくお願い致します。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-03-09 08:52
なかしさん、お早うございます。

引用:

Unicodeの指定(301CとFF5E)をどの様に行えばよろしいのでしょうか?


vb.netをお使いとの事ですので、ChrW() 関数について調べてみて下さい。

スキルアップ/キャリアアップ(JOB@IT)