• 締切済み
  • すぐに回答を!

2バイト文字をASCIIコードに変換

SQL Server初心者です。 SQL Serverで2バイト文字をASCIIコードの値で返したいのですが、関数ASCII()を使用すると、1バイト目のASCIIコードの値しか返してくれません。 2バイト目の文字も返す方法をご教授ください。 言葉足らずでわかりにくいかと思いますが、よろしくお願い致します。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数2496
  • ありがとう数9

みんなの回答

  • 回答No.3

UNICODEでもSHIFT-JISでもプログラム側で一旦受けて、 Byte配列に格納してから評価するのはどうですか。 Sub bbb() Dim strTest As String Dim bytArray() As Byte Dim intcount As Integer strTest = StrConv("全(株)", vbFromUnicode) bytArray = strTest For intcount = 0 To UBound(bytArray) Debug.Print bytArray(intcount) Next End Sub

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • UTF-8とASCIIコードにおける互換性について

    UTF-8とASCIIはそのASCIIコードの範囲のおいて 互換性を持ちます。(と、書籍や多種な文献にはそういった記述があります) たとえば【A】という文字をUTF-8で符号化した際は【41】(16進数で) さらにASCIIコードでも【41】という値がAという文字に割り当てられています。 確かに、一件互換しているようにみえますが、UTF-8っていうことは最終的には Unicode上のコードポイントの値・・・つまり0x0041という値に復元?(というのでしょうか)するわけですよね? でそのUnicodeの文字集合上から復元したコードポイントに対応する文字を参照しAという文字をみつけてくると・・・。 これって【A】という文字をUTF-8で符号化した歳のバイト列はASCIIと一致しているけれど 結局Unicodeコードポイントに直した場合【00】という上位バイトが無駄にくっついてきて【0x0041】となり 互換性がなくなるのではとおもったのですが・・・。 これはどういう意味の互換性なのでしょうか? 識者の方ご教授ください。 お願い致します。

  • ASCIIコードへの変換方法

    ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をASCIIコードで表示させるプログラム ポインタaの中身aはASCIIコード8進数で001です。 ポインタbの中身aceはASCIIコード8進数で001003005です。 という感じのプログラムを作りたいのですが ASCIIへの変換方法がわからなく困っています。 もしよろしかったら具体例等のプログラムのご教授願います。

  • ASCII コード表の文字から10進に

    JAVAで、ASCII コードで文字表現の"G"などを、10進数に変換する方法が知りたいんです。 "G"→71 "@"→64 "0"→48 といった風に、変換したいんです。 ご存知の方教えてください。お願いします!

    • ベストアンサー
    • Java
  • 回答No.2
noname#140971
noname#140971

[イミディエイト] ? AscW("全") 20840 select unicode('全') 20840 と、ユニコードを求めたいということでしょうか?

共感・感謝の気持ちを伝えよう!

質問者からのお礼

コメントありがとうございます。 ユニコードではなくアスキーコードで返したいと思っています。 SELECT ASCII(SUBSTRING(CAST('TARGET' AS TEXT),1,2)) , ASCII(SUBSTRING(CAST('TARGET' AS TEXT),2,1)) こちらで解決したと思ったのですが、'あ'や'(1)'は1バイト目も2バイト目も返すことができたのですが、'(株)'や'No.'は1バイト目しか返しません。 理由を考えたのですが、どうしてもわかりませんでした。 TEXT型が特殊なのでしょうか。 わかりにくいかと思いますが、ご回答お待ちしております。

  • 回答No.1

ASCII関数は、複数の文字を指定した場合でも、 先頭文字の1文字しか変換の対象としないため 1バイト目のASCIIコードの値しか返らないのは正常の動作です。 2バイト目の文字も返す方法ですが、 見栄えは悪くなりますが以下の方法で取得することができます。 (参考程度に見てください(^^; きっと、もっと良い方法があると思います・・・。) SELECT CONVERT(VARCHAR, ASCII(SUBSTRING(TARGET, 1, 1))) + CONVERT(VARCHAR, ASCII(SUBSTRING(TARGET, 2, 1) FROM TARGET_TABLE 対象文字を切取り、ASCIIコードへ変換し、文字列へCONVERT後に、 2文字目も同じように変換し連結します。 ASCII関数は返値が数値であるため、CONVERTして文字列へ変換しています。 結果 対象データ:06 →ASCIIコード変換→4854

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ご回答ありがとうございます。 参考になりました。 質問が悪く申し訳ありません。 全角の文字のアスキーコードを返したいのですが、他に方法はありませんでしょうか。 折角ご回答いただいたのに申し訳ありません。。

関連するQ&A

  • ASCIIコードへの変換方法

    前の質問と似たような質問ですが困っております。 ポインタに文字列を格納し char *a="a"; char *b="ace"; このポインタの中身をASCIIコードで表示させるプログラム ポインタaの中身aはASCIIコード2進数で********です。 ポインタbの中身aceはASCIIコード2進数で************************です。 という感じのプログラムを作りたいのですが、8進数表示はここで教えてもらい理解できましたが2進数への変換方法がわからりません。 もしよろしかったら具体例等のプログラムのご教授願います。

  • ASCII文字変換

    VB6で、80h~9Fh 及び E0h~FFhはASCII文字変換が出来ません。(ANK文字コード表に無い) RS-232C通信機器等では、これらのASCII文字で通信しているものがありますが、対応方法をご教授頂けませんか?

  • 16進をASCIIコードに変換する手法

    16進をASCIIコードに変換する手法を教えて下さい。 *例 もしchar型変数aに0x0aが入っていたら0x41(大文字にしたい) aの値が1~fどれがきても対応できるようにしたいのですが・・・ if文とかswitchを多用しなくても簡潔に記述できますか?

  • EmacsにおけるキーとASCIIコードの対応

    こんにちは。 Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacsでは、ASCII文字は、0~127のASCIIコードで表されます。 例えば、文字Aは、ASCIIコード65で表されます。 現在、非印刷文字を表すASCIIコードに対応するキーが分からず困っています。 例えば、C-@はASCIIコード0, C-aはASCIIコード1, C-bはASCIIコード2, .....RETはASCIIコード13, TabはASCIIコード9, ESCはASCIIコード27といったことは分かっているのですが、他のASCIIコード(例えば17~26など)に対応するキーが分かりません。 非印刷文字を表すASCIIコードに対応するキーを調べる方法はあるのでしょうか? 何かいい方法を知っておられる方がいらっしゃれば、是非アドバイスを頂きたいと思います。 では、よろしくお願い致します。

  • ASCII変換について

    ASCII変換についてです。 unsigned char *p; p = "0x01,0x02,0x03,0x04"; 4バイト分、*pをASCII変換して出力する方法を 教えて下さい。 結果は『01020304』と出力されると思います。 toasciiを使用するのかと思いましたが、うまく いかず困っております。お願い致します。

  • Excel でASCII文字列を16進コードへ変換

    Excel でA1セルに、 A1セル:”1234” という半角英字の文字列が入力されています。 これをすべてASCIIコードへ変換したいのですが、 何か方法はありますでしょうか? 結果は、 A2セル:”49505152” となることを想定しています。 私なりに調べたのですが、 =CODE(MID(A1,1,1)) & CODE(MID(A1,2,1)) & CODE(MID(A1,3,1)) & CODE(MID(A1,4,1)) なら、期待した結果になっておりましたが、 文字数が多い場合にかなり不効率でした。 他の方法をご教授ください。

  • ASCIIコードのNullコードの感知方法

    OS:windows2000pro VB:VB6.0sp5 ASCIIコードを文字に変換した後に、そのコードが Null であるか否かの確認する方法を ご教示くださいます様よろしくお願いいたします 補足:ASCIIコードで Null のコードをパターンに持つという方法もありますが・・・・

  • ASCII文字列をEUCなどに変換したいができない

    いつもお世話になっております。 ファイルの文字コードがEUCのファイルの中に、 なぜか、文字コードがASCIIである文字列があります。 この文字列は、外部から受け取るカタチなので、 これはこれで、ASCIIでも、しかたないのかなという風に思い、 それならば、受け取った後、EUCに変換すればいいやと考え、 mb_convert_encoding($var,"EUC-JP","ASCII")を使って、変換を試みるも、 ASCIIのままなのです。 ASCIIである文字列には、変換されない鉄壁さというものがあるのでしょうか? 変換処理後に、mb_detect_encoding()で検査しますが、やはりASCIIのままです。 それならば!、ということで、 受け取る値(ここでは例として、"This_Value_is_ASCII_Encoding_hogehoge9999")を いったん手動のコピペ操作をして、 $UketoruAtai = "This_Value_is_ASCII_Encoding"; とし、 その値もやはり、ASCII文字列になっているので、 この、手動コピペ文字列ならば文字コードの変換はできるだろうと思い、 上記のmb_convert_encoding()の処理をしたわけですが、 この場合でも、やはり ASCIIは鉄壁でした。 いったい、これは、なんなんでしょうか、、、。 ちなみに、このASCII文字列は、英数字のみ(当たり前か。笑)の文字列です。 このASCII文字列を、EUC-JPにする手助けを、どなたか宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 1バイト文字から2バイト文字に変換

    C言語にて Char a = "-"; 上記のような直打ちのASCII(1バイト文字)をUCS-2(2バイト文字)に文字コードを利用して変換する方法がわかりません。 わかる方がいらっしゃいましたら助けて頂けるとありがたいです。

  • ASCII

    パソコン初心者です、自作中ですが、RAIDで引っかかっています、 RAIDボリュームの名前はASCII英数字で入力する必要があるようですが、このASCIIとは、具体的にどんな文字ですか?