- PR -

ASP.NET で「〜」の文字が「?」で表示される。

投稿者投稿内容
お獅子
大ベテラン
会議室デビュー日: 2004/09/14
投稿数: 160
投稿日時: 2005-10-26 10:29
いつもお世話になっております。

ASP.NET,データベースOracle9.2でDataAdapterを使用し開発してます。

今困ってる事は、画面に「〜」を入力し、DBに保存後、再度検索し表示させると「〜」の文字が「?」で表示されてしまうのです。
データベース上は「〜」と登録されています。

Oracleの問題なのか原因が分からず困ってます。ご存知の方おられたらご伝授お願いします。


えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2005-10-26 10:38
参考にどぞ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15872&forum=7
# 本家のOTN過去ログにもあります
らい
大ベテラン
会議室デビュー日: 2005/08/02
投稿数: 159
お住まい・勤務地: 東京都と千葉県のさかいめ
投稿日時: 2005-10-26 10:46
らいと申します。

引用:

黒獅子さんの書き込み (2005-10-26 10:29) より:
今困ってる事は、画面に「〜」を入力し、DBに保存後、再度検索し表示させると「〜」の文字が「?」で表示されてしまうのです。
データベース上は「〜」と登録されています。


えと、私も同じ様なことを経験したことがあります。
もっとも、ASP.NETではなく、Accessででしたが。
# Oracleのバージョンも確か9iだったような気がする。

自分の場合、文字化けするのが「〜」だけだったんで、
内部ロジックで変換してました。

おそらく、文字コードの変換がうまくいっていないような気がしますが、
結局原因調査はしていません。

まったく情報になっておらず、申し訳ない。
# 私も原因が知りたいです。

[編集]
Oracleのバージョンを間違えた。
何で8iだよ。orz
[/編集]

_________________
一寸先は闇
安定してるシステムって言ったじゃん(泣)

[ メッセージ編集済み 編集者: らい 編集日時 2005-10-26 10:51 ]
お獅子
大ベテラン
会議室デビュー日: 2004/09/14
投稿数: 160
投稿日時: 2005-10-26 11:54
引用:------------------------------------------------------------------------
参考にどぞ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15872&forum=7
# 本家のOTN過去ログにもあります
-----------------------------------------------------------------------------

OlacleConectionのプロバイダはMSDAORAを使用してます。

エンコードはShift_jisを使用してます。
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis" />

これを"utf-8"に戻したところ「〜」のような文字になりました。ただ、JavaScriptでエラーが出ようになりました。今更"utf-8"にするのも怖いので"shift_jis"のまま使用したいと思ってます。

Ora9.2以降であればデータベースを作成するときに文字コードを「JA16SJISTILDE」にし、環境変数に「NLS_LANG=JA16SJISTILDE」を登録することで防げる。
具体的に何処をどう設定すれば良いのか、分かる方いたら教えてください。
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2005-10-26 13:01
対処法はこちら。
http://otndnld.oracle.co.jp/skillup/oracle9i/1_1/index.html

但し、全てエクスポートして、DBを再定義して、インポートと言う
とんでもない面倒くさい作業必要。

葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-26 13:32
WAVE DASH問題については、十分な情報が得られたようですので。

引用:
黒獅子さんの書き込み (2005-10-26 11:54) より:
エンコードはShift_jisを使用してます。
<globalization requestEncoding="shift_jis" responseEncoding="shift_jis" />

これを"utf-8"に戻したところ「〜」のような文字になりました。ただ、JavaScriptでエラーが出ようになりました。今更"utf-8"にするのも怖いので"shift_jis"のまま使用したいと思ってます。


えっと、JavaScritでエラーになったのは、
ブラウザがScriptの解析するタイミングで
コケるようになったということでしょうか。

Globalizationを、utf-8に設定した場合です。
JavaScriptを記述した.jsファイルを、
"utf-8(シグネチャつき)"で保存すると、
エラーが出なくなった気がします。

◇追記
<script type="text/javascript" src="huga.js" charset="shift_jis">
こんな感じで、scriptタグのcharset指定も一致させれば済みそうな気もします。
でも、サイト内の文字コードやエンコードは、統一した方が良いですよね。

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-26 13:42 ]

◇追追記
追記のやりかたでは、ダメなケースもあるようですた。orz
Javascriptの外部ファイル内でdocument.writeしたら文字化け(Mac IE 4.5編)

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-26 13:47 ]
お獅子
大ベテラン
会議室デビュー日: 2004/09/14
投稿数: 160
投稿日時: 2005-10-26 16:32
platiniさん、こんにちは
引用:
--------------------------------------------------------------------------------
対処法はこちら。
http://otndnld.oracle.co.jp/skillup/oracle9i/1_1/index.html

但し、全てエクスポートして、DBを再定義して、インポートと言う
とんでもない面倒くさい作業必要。
--------------------------------------------------------------------------------
情報提供ありがとうございます。参考にさせてもらいます。
確かに面倒なので別な方法考えます。

葉瀬崎浩樹さん、こんにちは。
ファイルの量が多いので一つ一つ保存形式を変更するのも面倒ですし、抜けが有ると怖いと思い、utf-8にするのをためらってます。
また、せっかくutf-8にしたとして、今まで正常に動いてたものが動かなくなる事も考えられます。

確実に簡単に対応できる方法は無いものでしょうか?
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-26 16:52
引用:

黒獅子さんの書き込み (2005-10-26 16:32) より:
ファイルの量が多いので一つ一つ保存形式を変更するのも面倒ですし、抜けが有ると怖いと思い、utf-8にするのをためらってます。

あら。
てっきり、JavaScriptはjsファイルにまとめているものだと思ってました。
前の発言は、jsファイルのみ保存形式を変更すれば良い状況を想定してのものです。

で、
globalization のrequestEncodingやresponseEncodingは、
requestやresponseの際のエンコード指定ですから、
aspxやaspx.csファイルの保存形式とは関係ないとの認識です。。
うーん、私は勘違いしているのかしら。
<globalization>要素
globalizationの概要

#リンク追加
[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-26 17:01 ]
#リンク修正orz

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-26 17:03 ]

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