• ベストアンサー

文字コードについて

perlプログラムのでtraceしてて、「HASH(0x815bb68)」 という文字コードがあったのですが意味を教えてください。 「0x」は16進数ということですよね。

質問者が選んだベストアンサー

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.1

文字コードじゃなくてリファレンスのアドレスです。 ハッシュのリファレンスを文字列として扱おうとしたのが原因です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 自分が作っているプログラムの文字コードについて

    自分が作っているプログラムの文字コードについて perlにてプログラムを作っているのですが、プログラムの文字コードが何なのかよく分かりません。 自分が作っているプログラムの文字コードってどのようにして調べるのでしょうか? お恥ずかしいことだとは思いますが、自分が作っているプログラムの文字コードが分からないのです。。 ご回答の程、よろしくお願い致します。

    • ベストアンサー
    • Perl
  • perlの文字コードについて

    言語:perl 文字コード:UTF-8 漢字と英数字の長さ(文字数)を測りたいですけど、 調べる方法をご教授よろしくお願い申し上げます。

  • 【文字コード】外見上は全く同じなのに生の文字コードが異なるのはなぜ?

    文字コードで行き詰まりました。 同じUTF8で全く同じ文字列であるにも関わらず(外見上は全く同じにも関わらず)、2つの生の文字コードが異なるということが起きて、どうしたらいいのかわかりません。 WEBサイトから「あいう」という文字を取り出してきて、そいつの文字コードを、生で表示させました。 すると、 E38182E38184E38186 になります。ところが、perl文の中で$testStr="あいう"; として、そいつを同じように16進数で表示させると、 304230443046 と、違うものになっています。 にも関わらず、「WEBからとってきた文字列」も「perl内で書いた文字列」も両方「Jcode::getcode()」でその文字コードを調べると、utf8になります。 しかも、それら両方とも、print()をすると、同じように「あいう」と表示されます。 「perl内で書いた文字列」の方では、問題なくDBに入れれるのですが、「WEBからとってきた文字列」の方は、文字化けします。 「WEBからとってきた文字列」を「perl内で書いた文字列」のような文字コードに変換するにはどうすればよいのでしょうか? なぜ同じUTF8として認識されているのでしょうか? もう気が狂いそうです。 どなたかお助けください。お願いします。 環境 Ubuntu perl v5.8.8 built for x86_64-linux-gnu-thread-multi 以下は詳しいソースです。 use utf8;#この質問に関係がありそうなモジュールです use Jcode; use DBI; use URI; use YAML; use Switch; use Web::Scraper; use HTTP::Request::Common; use LWP::UserAgent; use HTTP::Cookies; use HTTP::Request::Common qw(POST); ##Webサイトから文字列「あいう」を取得してくる。取得過程は略してます。 $testStrFromWeb=@titleArr[$i];#ちなみにWebサイトの文字コードはUTF8です。 print("testStrFromWeb:".$testStrFromWeb);#「あいう」と表示されます。 ##Webサイトから得た文字列「あいう」の生の文字コードを表示。 $strCode=$testStrFromWeb; $strCode =~ s/(.)/sprintf "%X", ord($1)/eg; print "$strCode\n";#E38182E38184E38186と表示されます ##Webサイトから文字列「あいう」の文字コードの種類を表示(utf8が返ってくる) my $getcode = Jcode::getcode(\$testStrFromWeb); print $getcode ,"\n";#utf8と表示される ##perl内で書いた文字列。 $testStrInPerl="あいう"; print("testStrInPerl:".$testStrInPerl);#「あいう」と表示されます。 ##perl内で書いた文字列「あいう」の生の文字コードを表示。 $strCode=$testStrInPerl; $strCode =~ s/(.)/sprintf "%X", ord($1)/eg; print "$strCode\n";#304230443046と表示されます ##perl内で書いた文字列「あいう」の文字コードの種類を表示 my $getcode = Jcode::getcode(\$testStrInPerl); print $getcode ,"\n";#utf8と表示される ここまで読んでくださってありがとうございます。

    • ベストアンサー
    • Perl
  • 文字コード変換プログラム

    こんにちは 文字コードを一発で2進数に変換してくれるプログラムを探しています。例えば A-->01000001 あ-->1000001010100000 16進数に変換してくれるプログラムって結構見つかりましたが なぜか2進数が見つかりませんでした。 (16進数を2進数に変換すれは良いのですが、できれば一発で…) プログラムを載せているサイトをご存知の方、宜しくお願いします。

  • 文字コードの問題

    C言語の問題で次のようなものがあるのですが、 考えてもどんなコードになるのかどうしてもわかりません。 どなたかお分かりになる方はいらっしゃいませんでしょうか? お願いいたします。 ~問題~ 2桁の16進数('41~49','50~'59')を入力すると対応する文字を表示する。 ただし%xは使用しないこと。 なお、入力に間違いはないものとする。 (ヒント:入力は一つの数値か、二つの文字か?) 実行結果 2桁の16進数('41~49','50~'59')を入力してください:53 文字コード「53」の文字は「S」です。

  • dbの文字コード

    データベース(mysql)(pdo)にpasswaerd_hashでハッシュ化した文字列を格納しようとしたのですがおそらく文字コードが違うためにはじかれてしまいます。 マニュアルに 結果をデータベースに格納するときにはカラム幅を 60 文字以上にできるようなカラムを使うことをお勧めします (255 文字くらいが適切でしょう)。 と書かれているのですが、どれを使えばいいかわかりません。 どの文字コード(カラム側)を使えばいいですか? 接続はutf8mb4です。 ちなみにメールアドレス、英数字の20文字程度はutf8_general_ciです。 英数字に最適な文字コードを教えてください

    • ベストアンサー
    • MySQL
  • C++で16進数の文字コードから文字を表示する

    現在C++を習得しようとテキストを使い練習中なのですがC++で16進数の文字コードから文字を表示するプログラムを作れという問題で一通りできる様にはなったのですが リビルドしたときは正常終了するのですがビルドの段階でデバッグエラーが発生してしまいます。 #include <stdio.h> int main(void) { char suuji; printf("2桁の16進数('41'~'49'、'50'~'59')を入力して下さい:\n"); scanf("%02x",&suuji); printf("文字コード「%02x」の文字は「%c」です。\n",suuji,suuji); return 0; } エラーの内容は画像を添付いたしました。 原因が何なのかが分からなくて困っております。 もしよろしければご指摘お願いします!

  • 文字コードによる表記

    非常に初心者的な質問なんですが、 文字コードのS-JISで「、」を表記する場合、 「0x8140」と表記するのが正しいのでしょうか? xの部分は区数を入れるのか、そもそも0xの部分は必要なのか 調べてもよくわかりませんでした。 どうかお願いします。

  • 文字コードについて

    Windowsでよく使う文字コードはSJISなのでこれについて調べたら shift-jis、cp932、Windows-31Jのような名称がある事がわかりました。 これらの違いは調べてわかったのですが、プログラムで文字コードを指定する時、プログラムによって上の文字を上の文字を使い分けなければいけませんがなぜこのような現象が起こるのですか? 各アプリケーションで指定する文字コード名を勝手に定めているように思えます。上の文字コードはISOやIANA等に登録されているみたいですが、文字コードを登録するための統一された一つの組織に登録するわけではないのですか? またエディタなどでこれらを区別する際にはどのようにして判別しているのですか? これらの質問のどれかが分かったらその質問だけで構わないので教えてください。

  • 文字コードについて \x{53d6}表記法?

    Perl5.8を使っています。 下のプログラムを実行すると、「取得」と表示されますが、この逆で"取得"文字列から、 \x{53d6}\x{5f97}を求めたいです。 また、\x{53d6}は バイトオーダー無しのUTF8の数値という意味でしょうか? use utf8; use encoding "shiftjis"; print "\x{53d6}\x{5f97}"; # 取得と表示されますが、この逆で"取得"文字列から、 \x{53d6}\x{5f97}を求めたい。 # \x{53d6}は バイトオーダー無しのUTF8の数値という意味でしょうか?

    • ベストアンサー
    • Perl