[文字エンコード]の検索結果
単にテキストファイル等の文字エンコードを変換するのであれば、iconvコマンドを使用して変換すれば良いのですが、 ときにはプログラム内部で取得した文字列の文字エンコードを変換したい場合もあります。
以下のプログラムはLinuxやCygwinの環境でC言語のプログラムからiconvを呼び出して文字エンコードを変換する場合の手順を示したサンプルプログラムです。
--- tst_iconv.c ---
#include <stdio.h> #include <iconv.h> #define BUFSIZE 1024 char outbuf[BUFSIZE]; int convert(char const *src, char const *dest, char const *text, char *buf, size_t bufsize); main(void) { int ret; ret = convert("SHIFT-JIS", "UTF-8", "日本語テストメッセージおはよう", outbuf, sizeof(outbuf)); if (ret) { printf("%s\n", outbuf); } else { printf("Oops!\n"); } } int convert(char const *src, char const *dest, char const *text, char *buf, size_t bufsize) { iconv_t cd; size_t srclen, destlen; size_t ret; cd = iconv_open(dest, src); if (cd == (iconv_t)-1) { perror("iconv open"); return 0; } srclen = strlen(text); destlen = bufsize - 1; memset(buf, '\0', bufsize); ret = iconv(cd, &text, &srclen, &buf, &destlen); if (ret == -1) { perror("iconv"); return 0; } iconv_close(cd); return 1; }
コンパイル方法
$ gcc -o tst_iconv tst_iconv.c -liconv
ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道
ソフトバンククリエイティブ 著者:青木 峰郎 価格:2,940円 評価:★★★★★
- 良書だと思います ★★★★★
- Linuxを学ぶ為の読本、Cプログラムミングを学ぶなら別の本で ★★★★★
- 基礎を学ぶには良い書籍だと思います ★★★★★
- 入門書としては良い ★★★★
- Linuxプログラミングを始めたい人にオススメ ★★★★★
URLから元ページのタイトルを取得するためのPerlのサンプルスクリプトです。
処理手順は以下の通りです。
1.ページURLを元にHTMLソースを取得する。
2.タイトルタグで囲まれている文字列を抜き出す。
対象のページがどんな文字エンコードで記述されているか不明なので、文字エンコードの変換処理も行っています。
サンプルコードではタイトルだけ取得してますが、正規表現のパターンを変更することで、本文も取得なども行えるはずです。
処理手順は以下の通りです。
1.ページURLを元にHTMLソースを取得する。
2.タイトルタグで囲まれている文字列を抜き出す。
対象のページがどんな文字エンコードで記述されているか不明なので、文字エンコードの変換処理も行っています。
use LWP::Simple;
use Jcode;
#my $pageurl = "http://www.01club.org/59log/";
my $pageurl = "http://59bbs.org/";
my $content = get($pageurl);
my $title = '';
my $pattern = "<title>(.+)</title>";
if($content =~ m/$pattern/i) {
$title = $1;
}
# 文字コードをSJISに変換
my ($code, $nmatch) = Jcode::getcode(\$title);
$title = Jcode->new($title, $code)->sjis;
print "$title\n";
サンプルコードではタイトルだけ取得してますが、正規表現のパターンを変更することで、本文も取得なども行えるはずです。
任意のキーワードリストに含まれるテキスト中のキーワードに、特定のページ(URL)にリンクするPerlのサンプルスクリプトを作ってみました。ブログソフトとか掲示板ソフトを開発する際に役に立つと思います。文字エンコードがUTF-8、EUCではOKでしたが、SJISではうまく動きませんでした。
以下、サンプルスクリプトの一部です。
リンクの処理のところが微妙ですが、適当に修正して使っていただければ幸いです。
はてなダイアリーのキーワードにリンクするためのサンプルもあるようです。動かしてみたわけでないのでハッキリとはいえませんが、ソースを見る限りテキスト内でアンカータグでリンクを行っている場合は、まずいような気もします。
はてなダイアリーキーワード自動リンクAPI - はてなダイアリー日記
以下、サンプルスクリプトの一部です。
my @wordlist = ('はてな', 'ブログ', 'アルファブロガー');
foreach my $word (@wordlist) {
my $encword = $word;
$encword =~ s/(\W)/'%'.unpack('H2', $1)/eg; # uri encode
my $link = "<a href=\"serach.cgi?querystr=$encword\">$word</a>";
$text =~ s/$word/$link/g;
# アンカーテキストのキーワードは元に戻す
my $pattern = "(<a href.+)<a href.+$word</a>(.+/a>)";
$text =~ s/$pattern/$1$word$2/g;
}
print $text;
リンクの処理のところが微妙ですが、適当に修正して使っていただければ幸いです。
はてなダイアリーのキーワードにリンクするためのサンプルもあるようです。動かしてみたわけでないのでハッキリとはいえませんが、ソースを見る限りテキスト内でアンカータグでリンクを行っている場合は、まずいような気もします。
はてなダイアリーキーワード自動リンクAPI - はてなダイアリー日記
なお、上記ファイルは現状で300KBほどありますので、アプリケーション側で一定時間キャッシュして頂くなどの措置をお願いできればと思います。テキスト一つ処理するだけで300KBですか、はてな側も大変かも知れませんが呼び出す方も大変ですね。
Perlで日本語を扱うWebアプリを開発する際に必要になるのが、文字コード(エンコード)を変換するためのモジュールです。Webアプリのターゲットとなる運用環境でPerl 5.8が使えるのであればEncodeモジュールを利用す...
ブログ等に貼り付けるためのAmazonの商品リンクを、Amazon ECS のRESTリクエストを利用して、画像付きで生成するフォームを作成しました。商品のASINとアソシエイトIDを入力して作成ボタンをクリックすると画像付きの...
1
アクセスランキング
今月のアクセスランキング(上位10件)
- 2NN (2ch News Navigator) (314 PV)
- プリンセスガーデンホテル女性社長の「片岡都美」氏はフジモリ元大統領夫人 (92 PV)
- 小林興起元衆議院議員がタレントの杉本彩さんにキスを迫る (61 PV)
- 2ちゃんねる(2ch)検索 掲示板 - スレタイ、過去ログ、全文検索 (42 PV)
- 読売新聞「石井誠」記者変死事件 (20 PV)
- ログ速(ろぐそく、logsoku) - 過去ログ スレタイ検索 全文検索 (20 PV)
- 5ちゃんねる(5ch.net、旧2ちゃんねる)掲示板 (17 PV)
- PHP、MySQLで動くオープンソース掲示板ソフト (12 PV)
- 掲示板やチャットなどのフリーPHPスクリプトの配布サイト (11 PV)
- 掲示板フリーソフト - 無料で利用できる掲示板CGI (11 PV)
アクセス統計
ディレクトリ
- 59bbs.org - 掲示板
- Amalink - 画像付きamazon商品リンク作成ツール
- Mailform Std - オープンソースライセンス(GPLv2)のメールフォームCGI(Perl)
- ThreadPlus - オープンソースライセンスの(GPLv2)掲示板CGI(Perl)
- 2ちゃんねる掲示板検索
関連サイト
- 語句ログ - オープンソースブログソフト59Trackerを利用した情報共有ブログ
- 株価と為替レート(FX)の掲示板
- CommentPP - オープンソース掲示板システム(PHP/MySQL)のダウンロード
- BBS10 - CommentPP を利用したインターネット掲示板