言語
サーバ関連
ツール
API
読み物
その他
[AD]
「文字」を文字コードへ変換するにはord関数を用いれば良いが、「文字列」の場合はどうすれば良いのだろうか?ord関数の使い方を工夫してやれば良い。
単純に1byteずつ置換してやれば良い。この置換時にord関数を用いることになる。
#!/usr/bin/perl ;# ;#文字列の文字コードを取得 ;# use strict; #-- 文字コードを取得 --# print String2Bytes($ARGV[0]), "\n"; #--------------------------------------------# #文字列の文字コードを取得する #--------------------------------------------# sub String2Bytes { my $str = shift || return(undef); my $fmt = shift || '%X'; $str =~ s/(.)/sprintf($fmt, ord($1))/eg; return($str); }
$ ./str2byt.pl abc 616263 $ ./str2byt.pl あいうえお A4A2A4A4A4A6A4A8A4AA
eオプションは、置換文字列を正規表現ではなくPerlの構文として処理してくれる。gオプションはすべての該当する検索文字列を対象とする、という意味になる。gオプションをつけないとすべて変換されない点に注意。
ここでは16進数で結果が返ってきているが、第二引数にsprintfのフォーマットを指定すればそれが適用される。もし10進数で取得したいなら「String2Bytes($ARGV[0], '%d')
」などとすれば良い。カンマ区切りで見たいなら(最後にカンマが余るが)「String2Bytes($ARGV[0], '%d,')
」とする。
= Perlで文字列をHTML数値文字参照に変換:http://www.akatsukinishisu.net/itazuragaki/perl/string_to_numeric_charref.html
= はてな:日本語文字列をHTMLエンティティに変換したいのですが、どうやってもうまくいきません。どうやればいいのか教えてください。:http://q.hatena.ne.jp/1150528602
failed to fetch data: unkown error
failed to fetch data: unkown error