WIN2000+IIS5+SQLServer2000で開発しています。
レンタルサーバーでやってるのですが、
ASPからSPを呼び出して挿入するとDBに文字化けして入力されてしまいます。(varcharの項目です)
これがASPからSQL文を丸投げすると文字化けしません。

が、文字化けしてないレコードをASPから参照するとまた文字化けしてしまいます。

が、自前の環境(WIN2000+SQLServer7)でテストするといずれも文字化けしません。

レンタルサーバーが海外のもの、というのが問題なのかもしれませんが、文字コード等には
何分詳しくないもので、解決案等ございましたらお教え願います。
キャンセル可能期間もせまっており、微妙に焦り気味です(泣)。
宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

"?A?・?A"と言う結果を見る限りどうもビット落ちしているみたいですね


もしかしてレンタルサーバ環境は英語版とかですか?
であればSQLServerのロケール設定を日本に設定する事で回避できるかもしれません。が、無理っぽいですよね(^^;

他の方法としてはストアドプロシージャに文字列を突っ込む前にbase64エンコード等で8bit目を使用しないデータに変換して格納し、出力時にデコードすると言う方法もあります。
またMicrosoft製品なので多分Unicode用のデータ型があるでしょうから、文字列はすべてUnicodeとして処理するようにするのも手だと思います(これが一番オススメ。後で他カ国語を扱ったりするのも楽ですから)。

この回答への補足

ご回答ありがとうございます。

alfeimさんの教えに従ってテーブルのカラムをUnicodeにしてみましたが、文字化けは直りませんでした。
さらに、”コードページ”と聞いて意味もわからなかったのですが、ASPの最初にCODEPAGE=932としてみたら、、、
どうもきちんと登録できたようです。
もう少しテストして、登録、参照、更新できることを確認します。

取り急ぎ、ご報告まで。
ありがとうございました。

補足日時:2001/05/31 21:55
    • good
    • 0

追加です


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 …
    • good
    • 0
この回答へのお礼

お返事遅くなって申し訳ありません。

無事、問題なく動くようになりました。
ありがとうございました。

お礼日時:2001/06/20 10:47

下の方に続いて補足要求です


出来れば元の文の文字列と化けた文字を一緒に指し示してくださるとどういう原因で化けてるかの推測に使えます(可能であればバイト列として指し示してもらえるとなお可です)。
    • good
    • 0

>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

としてあるだけです。

参照時のソース等も後ほど掲載しますので、よろしくお願いします。

補足日時:2001/05/31 02:49
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q文字化けメールの修復方法は?

文字化けメールが届いてしまいました。
エンコードの問題ではないようです。修復する方法はありますか?

Aベストアンサー

以下のHPで、もしかしたら読めるかもしれません。

参考URL:http://www.kanzaki.com/docs/jis-recover.html

QWindows2000 と SQLServer2000 と IIS5.0 の組み合わせでASPが動かない

今、WindowsNT SP6と IIS と SQLServer2000を使って、
(すべて1つのPCの中にインストールしてあります)

WEB側から、サーバーのデータベースの中を
検索し、参照するプログラムを動かすことができています。


同じことを、Windows2000 にしてやろうと
しているのですが、

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバが見つかりません。

となり、参照することができません。
ODBCの設定は合っていると思うのですが、
Windows2000 ではできないのでしょうか?

ユーザーの設定とかでしょうか?権限の問題?

どなたか教えてください。困ってます。
足りない情報があれば補足致します。

Aベストアンサー

Microsoft OLE DB Provider for SQL Serverを使えば良いのでは?

Qメールが全部文字化け!どうすれば修復できますか?

outlookexpress6を使用しています。

ある日突然受信トレイにあるメール内容がすべて文字化けされてしまいました。
どうしたらいいのでしょう・・

元にもどるのでしょうか。。。

エンコード設定でunicode utf8にしたら、自分のメールから自分のメールに送ったらうまくおくれたのですが、外部からおくられてくるメールはいまだに文字化けのままです。。。
受信トレイにたまったメールもすべて文字化けのままなので修復したいです。

お詳しい方どうぞアドバイスよろしくお願いします!

Aベストアンサー

次の操作を試してみてください。

1.[ツール]→[オプション]を実行
2.[読み取り]タブを選択
  2.1.[エンコード]→“日本語(自動選択)”
  2.2.[既定に設定]をクリック ← これ重要!
  2.3.[OK]をクリック

Q[ASP+SQLserver]列名の取得・・・

こんにちわ!皆さん!!
今日は、ASPで列名を取得する方法が見つからず悩んでします。

例えば
Syohin = rsSyohinMaster("商品名")
とすれば、テーブル内の「商品名」という列名に入っているデータをSyohinに格納できますよね?

そうではなくて・・・
Retsumei = rsSyohinMaster(1) とかやったら、
Retsumei に 「()」内で指定した番目にある列名を(例えば:商品名)格納
したいんです!

そういうコマンドないですか?

実際は指定されたテーブルの列名を配列に一気に取り込む処理を考えています。

いかがでしょうか?

宜しくお願い致します!

Aベストアンサー

Retsumei = rsSyohinMaster(1).name

の様に、参照中のアイテムに、「.name」をつければ、列名を取得できます。

ちなみに、
rsSyohinMaster.GetRows(count, start, fields)
関数で、配列に変換できます。
count:レコード数(-1で全て)
start:開始レコード位置(0現在位置から、1最初から、2最後のレコードから)
fields:フィールド名か、フィールド名の配列

Q 文字化けの修復方法

windouws 98 NEC ノートパソコンで
文字化けしてしまい一般的な修復方法の
セーフモードにして再起動するとよく直っていたんですが今回は直りませんでした。
セーフモード中は直って普通に見えるのですが
再起動で立ち上げるとま文字化けしてしまいます
何か良い改善方法をおしえてください。
お願いします。

Aベストアンサー

参考URLをご覧のうえ、対処してください。

参考URL:http://homepage2.nifty.com/winfaq/fontstrouble.html

Q[ASP+SQLserver]Varcher形式を日付として範囲指定。

こんにちわ。

売上の期間指定出力をします。

varcher形式でSQLサーバに日付が格納されています。
ユーザがテキストボックスに日付を2つ(開始と終了)を入れます。
形式は yyyy/mm/dd でやるとして・・・。
Betweenで単純にSQL文を作ると・・・うまく評価できないのか
期間がむちゃくちゃです。

おそらく、日付だと認識していないからだと思うのですが・・・。

どのように処置してやればうまく日付だと認識し、期間指定ができますか?

宜しくお願い致します。

Aベストアンサー

既に解決済みかも知れませんが
回答が付いてないようなので。

SQLサーバは、いじったことないんですが
手元にある書籍によるとCAST関数というのがあるようです
TO_DATEみたいなのがあるだろうと当たりをつけて見てみたんですが
説明には案の定OracleのTO_DATEと同じ機能ですと書いてあります。
あとはヘルプ参照ということで、、、
まだ解決してないようなら頑張ってください (笑)

Q文字化けしたワードファイルの修復方法を教えてください

word2003で作成し、保存していた文書を、同じパソコンのword2003で開いたら文字化けしていました。
以前見たときは正常に表示されていて、その後何か操作をした覚えもありません。
文字化けした部分は□が並んだようになっています。

教えてgooの過去の質問や、他のサイトをみて解決方法を調べ、フォントを変える、htmlファイルやrtfファイルで保存しなおす、ワードパッとにコピーする、等色々試して見ましたが直りません。

大切な文書でしたので、修復方法をお教えください。
お願いします。

Aベストアンサー

☐の部分は、文字(文字コード)であったことは確実ですか。
例えば1例でも、(元は)どんな内容か思い出せますか。
正しく表示されていたころは、質問者はそれを見た事を覚えていますか。
ところどころ、少ない部分だけですか。
その後何か特別なことをした、ことは思い出せませんか。
ーー
「文字化け」というのは文字コード(体系)の問題だと思います。間接的にFontなどと関連しますが直接的ではないと思う。
もがいている方向性が疑問に思ったもので。
http://www.asahi-net.or.jp/~ax2s-kmtn/character.html
本質問の解決に直接役に立たないと思うが、参考までに見て置いてください。
何か思い当たる点は無いですか。
上記WEBにもある、機種依存文字など関係ないですか。
文書やファイル作成時に使われた文字コード体系がファイルに記録されるとはっきりするが、そういうOSの仕組みではないようなので難しい。

Q[ASP+SQLserver]追加したてのIDを知りたい

こんにちわ。
ASPとSQLサーバーで動的なWebページを作成しています。

SQLサーバー内に「sampletable」というデータベースがあるとします。

ID int (1から1づつ増加のオートナンバー)
Name varchar

というフィールド構成とします。

rsSample.Open "SELECT * FROM sampletable",dbConnection,3,2

rsSample.AddNew
 rsSample("Name") = "Hajime Kindaichi"
rsSample.Update

という流れでDBにデータを追加しているとします(dbConnectionなどは前段にセットしているものとします)。

この場合、IDは自動で連続する番号を採番しているわけですが、rsSample.Updateのあとで直前に追加したてのIDを取得or利用したい場合、なにかコマンドなどを用いて取得することはできますでしょうか?

それとも、SessionIDなどを残しておいてクエリを生成しOpenして取得しなければいけないのでしょうか?

以上、宜しくお願い申し上げます。

こんにちわ。
ASPとSQLサーバーで動的なWebページを作成しています。

SQLサーバー内に「sampletable」というデータベースがあるとします。

ID int (1から1づつ増加のオートナンバー)
Name varchar

というフィールド構成とします。

rsSample.Open "SELECT * FROM sampletable",dbConnection,3,2

rsSample.AddNew
 rsSample("Name") = "Hajime Kindaichi"
rsSample.Update

という流れでDBにデータを追加しているとします(dbConnectionなどは前段にセットしているものとし...続きを読む

Aベストアンサー

rsSample.Update
の後に
'最新の番号
rsSample.MoveLast
LastNum = rs("ID int")
で lastNumという変数に一番新しいID int が
取込み出来ます。

Q文字化けしたフランス語のメールを修復するには?

フランス語のメールが文字化けしてしまい、
うまく読めなくなってしまいました。

すでに難しい漢字などが紛れてしまった文章を
修復できるようなフリーソフトなどはございませんか?
またはPCの簡単な設定で修復する方法がありますか?
こちら、windows vistaです。
初心者でもわかりやすいものがあれば教えてください。

よろしくお願いいたします。

Aベストアンサー

duosonic です。お疲れ様でした。
ユードラって亜流です、ハッキリ言って。もともとマック用にデザインされた?らしいので、Windowsとは相性悪いのもうなづけます。そもそもライブドアホリエモンが関わっているというだけで、僕の中ではボツです (^^;)

Vistaには Windows Mailが入っていますよね。それで再生できませんかね?

>>あいさつ程度のフランス語しかできませんので、差出人のフランス人にもう一度送って~なんていうことを言えるかどうか・・・(;_;)
>あそうなんですか。何と申し上げて良いのやら 、、、(-_-;)

通じるか否か分からないフランス語で書くよりも、英語で出しちゃうのは手ですよ。欧州人は大抵英語大丈夫ですから。(僕の回答歴?ご覧頂くとお分かりかと思いますが、)英語ならいくらでもお教えいたしますので、ご安心下さい。或いは、フランス語を書けるだけ書いて、外国語?カテで内容が大丈夫か聞いてくるのも手です。


ご参考までに。

QASP.NETレンタルサーバーのお勧めは?

ASP.NETでWebアプリケーションを作成しようと思っています。今回はレンタルサーバーの使用を考えているのですが、お勧めのサーバーを教えてください。
開発環境 Visual Studio.NET 2003
データベースを1つだけ使用します。
安価なところが良いですが、やはり、サービスやサポート体制や使い勝手の良さを重視したいと思います。
また、データベースの管理も簡単な所が良いと思っております。使用した感想などを教えて頂けると幸いです。宜しくお願いいたします。

Aベストアンサー

LinuxやFreeBSDに比べるとまだまだ選択肢が少ないですが
安価なところが出始めてますね
「ASP.NET ホスティング」でググッてください。
ASP.NET デベロッパー センター ホスティング情報
で一覧でMSが紹介しています

参考にならずすいませんが、サービスについては私はcerviを開発環境でしか使用してないのでなんともいえません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング