
WIN2000+IIS5+SQLServer2000で開発しています。
レンタルサーバーでやってるのですが、
ASPからSPを呼び出して挿入するとDBに文字化けして入力されてしまいます。(varcharの項目です)
これがASPからSQL文を丸投げすると文字化けしません。
が、文字化けしてないレコードをASPから参照するとまた文字化けしてしまいます。
が、自前の環境(WIN2000+SQLServer7)でテストするといずれも文字化けしません。
レンタルサーバーが海外のもの、というのが問題なのかもしれませんが、文字コード等には
何分詳しくないもので、解決案等ございましたらお教え願います。
キャンセル可能期間もせまっており、微妙に焦り気味です(泣)。
宜しくお願いします。

No.3ベストアンサー
- 回答日時:
"?A?・?A"と言う結果を見る限りどうもビット落ちしているみたいですね
もしかしてレンタルサーバ環境は英語版とかですか?
であればSQLServerのロケール設定を日本に設定する事で回避できるかもしれません。が、無理っぽいですよね(^^;
他の方法としてはストアドプロシージャに文字列を突っ込む前にbase64エンコード等で8bit目を使用しないデータに変換して格納し、出力時にデコードすると言う方法もあります。
またMicrosoft製品なので多分Unicode用のデータ型があるでしょうから、文字列はすべてUnicodeとして処理するようにするのも手だと思います(これが一番オススメ。後で他カ国語を扱ったりするのも楽ですから)。
この回答への補足
ご回答ありがとうございます。
alfeimさんの教えに従ってテーブルのカラムをUnicodeにしてみましたが、文字化けは直りませんでした。
さらに、”コードページ”と聞いて意味もわからなかったのですが、ASPの最初にCODEPAGE=932としてみたら、、、
どうもきちんと登録できたようです。
もう少しテストして、登録、参照、更新できることを確認します。
取り急ぎ、ご報告まで。
ありがとうございました。

No.4
- 回答日時:
追加です
MicrosoftのKnowledgeBaseからこういうArticleが見つかりました
>U.S. English 版 SQL Server 6.0 と 6.5 のデフォルトは ISO 8859-1 (Latin 1 あるいは ANSI) で、コードページ 1252 としても知られています。
との事なので件のレンタルサーバが日本語版SQL Server2000を使っていないのであればコードページの可能性が高いのではないでしょうか?
参考URL:http://www.microsoft.com/JAPAN/support/kb/articl …

No.2
- 回答日時:
下の方に続いて補足要求です
出来れば元の文の文字列と化けた文字を一緒に指し示してくださるとどういう原因で化けてるかの推測に使えます(可能であればバイト列として指し示してもらえるとなお可です)。
No.1
- 回答日時:
>ASPからSPを呼び出して挿入するとDBに文字化けして入力されてしまいます。
(varcharの項目です)>これがASPからSQL文を丸投げすると文字化けしません。
よく意味がわからない^^;
ASPからSP?
丸投げ?
自分の言葉ではなく、きちんと書いていただけますか?^^;
できれば、その個所のソースもあれば良いです。
>が、文字化けしてないレコードをASPから参照するとまた文字化けしてしまいます。
ココのソースも。
この回答への補足
わけわかんないこと言ってすみません。
ASPからパラメータ値を入れてSQLServerのストアードプロシージャ(SP)を呼ぶと、化けてしまうということです。
それに対して、SQL文をASPの中に書きこんでそれをSQLServerに渡すと文字化けしないのです。
例えば、usr_name というvarchar(50)のカラムのみを持つDBにデータを挿入するとして、
set connDB = Server.CreateObject("ADODB.Connection")
connDB.Open Application("WebAccount")
set cmd01 = Server.CreateObject("ADODB.Command")
set cmd01.ActiveConnection = connDB
cmd01.CommandText = "sp_test01"
cmd01.CommandType = adCmdStoredProc
'リターン値
cmd01.Parameters.Append cmd01.CreateParameter("return",adInteger,adParamReturnValue)
'入力パラメータ追加
cmd01.Parameters.Append cmd01.CreateParameter("usr_name_1",adVarChar,adParamInput,50)
'パラメータ値の代入
cmd01.Parameters("usr_name_1")="てすと"
'SP実行
cmd01.Execute
として"てすと"3文字を入れようとするとDBには"?A?・?A"となって挿入されてしまいます。"test"ですときちんと入ります。
ストアードプロシージャは、
CREATE PROCEDURE [sp_test01]
(@usr_name_1 [varchar](50))
AS INSERT INTO [db-rokyu.net].[dbo].[test01]
( [usr_name])
VALUES
( @usr_name_1)
GO
としてあるだけです。
参照時のソース等も後ほど掲載しますので、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
utf-8でメールを送信すると件名...
-
10Mバイトて文字数に すると何...
-
DataGridViewの特定列に入力さ...
-
C++ Builderで文字列をバイトに...
-
char str[256]の256の意味は?
-
COBOLのCOMP形式について
-
Excel 1セル当りの文字数が2...
-
Rstudioによるテキストマイニン...
-
VC++で日本語(マルチバイト)フ...
-
UTF-8で5~6バイトになる文字コ...
-
ビットデータのチェック方法
-
stable diffusionのエラー
-
エクセルシート名の制限を変更...
-
html→aspxへのタグ変換方法
-
C#でのswitch文
-
C言語でのLinuxとwindows共通の...
-
EOM間にperl文を作成したい
-
64bit対応
-
Excel VBA グラフ作成のとき...
-
H8/36064のAD変換データの文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
これはなんて文字コードかわか...
-
CGI掲示板の文字化け
-
BBSの基本的なファイル操作法?
-
機械語?
-
CGIからの文字が化ける
-
SQLServerへの出し入れで文字化け
-
cgiの文章がHP上で見ると文字化...
-
utf-8でメールを送信すると件名...
-
全角カタカナチェックについて
-
ソ噂浬欺圭構蚕十申曾箪貼能表...
-
SHIFT-JIS utf-8 スクリプト
-
Apacheでも互換性
-
CGI(Perl)の文字化けについて
-
応募フォームなどの住所欄で最...
-
入力項目のチェック
-
perl cgi のエンコード SHIFT...
-
秀丸でCGIを開いたら文字化...
-
フォームメールで名前を全角の...
-
ESC/Pのテキスト印字の制...
-
Window open パラメタについて
おすすめ情報