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で質問しましょう!
似たような質問が見つかりました
- その他(ソフトウェア) ソースネクストアプリをインストールし、製品登録で半角英数字が入力できない 5 2022/07/03 22:44
- Perl perlについての質問 2 2022/10/17 15:25
- PDF PDFソフト 1 2023/08/23 16:14
- Evernote Evernote(エバーノート)の文字化け 1 2022/04/05 19:30
- HTML・CSS HTMLエディタBracketsの文字化け 3 2022/04/28 14:50
- HTML・CSS docxをmht形式で保存したファイルをedgeで開くと文字化けする 1 2022/07/29 13:14
- Google Drive 【Googleドライブ】ドライブ上内でのフォルダ移行について 4 2022/11/30 12:50
- HTML・CSS CSSファイルの日本語コメントが文字化けしてしまう 3 2022/12/26 15:50
- 高校 図書館や学習プラザでは消しゴム禁止にしませんか? 5 2023/05/08 18:36
- その他(OS) WIN 10 で検索の時に変なものrrrrrrr こんなようになり文字入力が不可能に 5 2022/08/27 09:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォームメールを受信すると文...
-
utf-8でメールを送信すると件名...
-
&jcode'convert(しても文字化け...
-
文字コードsjisをUTF8に書き換...
-
ポインター引数の関数でコンパ...
-
char str[256]の256の意味は?
-
エクセルシート名の制限を変更...
-
COBOLのCOMP形式について
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
printfの%eで指数部分の桁数を...
-
memcmp バイナリデータの比較方法
-
3バイト文字(UTF-8)をprintfで...
-
Javaで日本語1文字のバイト数
-
stable diffusionのエラー
-
ソケット通信の受信サイズ
-
改行コードがそのまま表示され...
-
テキストエリア内でタグ<BR>を...
-
html→aspxへのタグ変換方法
-
Excel VBA メール作成について ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
&jcode'convert(しても文字化け...
-
CGIプログラムを使った申し込み...
-
全角カタカナチェックについて
-
ESC/Pのテキスト印字の制...
-
ソ噂浬欺圭構蚕十申曾箪貼能表...
-
CGIメールフォームのメールが文...
-
Perlのcgi-lib.plでデコードさ...
-
Perl でメール送信プログラム。
-
CGIフォームから飛ばすメールが...
-
この日本語の文章をリコーディ...
-
文字化け
-
utf-8でメールを送信すると件名...
-
ECUコードのCGIを編集す...
-
文字化け
-
PerlのCGIで全角スペースを入れて
-
SQLServerへの出し入れで文字化け
-
文字化けとパスワード変更
-
.cgi でタグが勝手に変換されま...
-
CGIについてです。教えて下さい...
-
掲示板CGIでの半角カナ使用につ...
おすすめ情報