下記のperlのソースで出カさせると文字化けをする。
windows7でutf8で書いています。
mysqlの設定はutf8になっています。
print文で漢字以外は正常ですが、漢字の部分が文字化けをします。
修正個所を指摘願います。
宜しくお願いします。
use Encode;
use utf8;
use open IO => ":encoding(cp932)";
binmode STDOUT,':utf8';
# DBIモジュールを読込む
use DBI;
# データベース名を設定
$database = "mail";
# ホスト名を設定
$hostname ="localhost";
# ユーザ名を設定
$user = "****"; # データベースにパスワードを設定していれば指定
$password = "****";
# データベースのオブジェクトを作成して接続
$dsn="DBI:mysql:database=$database:host=$hostname";
$dbh = DBI->connect($dsn,$user,$password);
$rs = $dbh->prepare("select * from mail limit 100;");
$rs->execute();
# 取得したレコードセットの数だけループして表示
while(($mail,$id) = $rs->fetchrow()) {
print join("|",$mail,$id),"\n";
}
# レコードセットを閉じる
$rs->finish;
# データベースを閉じる
$dbh->disconnect;
exit;
No.2
- 回答日時:
>下記の様にsubject以降が文字化けをしています。
元がメールならばMIMEエンコードされていたりしませんか?
まぁ、メールだとするといろいろヘッダが足りないかもしれませんが。
perlではなく、コマンドでDBから取得したらどんなバイナリになるんでしょう?
有難う御座います。
下記は、cp932で書いています。
下記は正常に出カします。
utf8でperlは書きたいのですが、何処がおかしいのでしょうか。
# DBIモジュールを読込む
use DBI;
# データベース名を設定
$database = "mail";
# ホスト名を設定
$hostname ="localhost";
# ユーザ名を設定
$user = "***"; # データベースにパスワードを設定していれば指定
$password = "****";
# データベースのオブジェクトを作成して接続
$dsn="DBI:mysql:database=$database:host=$hostname";
$dbh = DBI->connect($dsn,$user,$password);
$dbh->do("set names sjis");
# 取得したテーブルにリレーションで都道府県名を追加している
$rs = $dbh->prepare("select * from mail limit 100;");
$rs->execute();
# 取得したレコードセットの数だけループして表示
while(($mail,$id) = $rs->fetchrow()) {
print join("|",$mail,$id),"\n";
}
# レコードセットを閉じる
$rs->finish;
# データベースを閉じる
$dbh->disconnect;
exit;
No.1
- 回答日時:
「print文で漢字以外は正常ですが、漢字の部分が文字化けをします。
」というのは, どのように確認したんでしょうか?出カの一部を抜粋します。
最初は、漢字では有りません。この部分は正常です。
その後に漢字が出ます。
Return-Path: mailmag-0001529850@receive.mag2.com|490313
Received: from z-oha-vzmta051-sv.z-seg.bbiq.jp (LHLO|490314
z-oha-vzmta051-sv.z-seg.bbiq.jp) (10.1.55.95) by|490315
z-oha-vzmbs151-sv.z-seg.bbiq.jp with LMTP; Mon, 20 Apr 2015 21:50:35 +0900|490316
(JST)|490317
Received: from localhost (localhost [127.0.0.1])|490318
by z-oha-vzmta051-sv.z-seg.bbiq.jp (Postfix) with ESMTP id 25343A4841|490319
for <usui@ori.bbiq.jp>; Mon, 20 Apr 2015 21:50:35 +0900 (JST)|490320
X-Spam-Flag: NO|490321
X-Spam-Score: 1|490322
X-Spam-Level: *|490323
X-Spam-Status: No, score=1 tagged_above=-10 required=6.6 tests=[dummy=1]|490324
autolearn=no|490325
Authentication-Results: z-oha-vzmta051-sv.z-seg.bbiq.jp (amavisd-new);|490326
dkim=pass (1024-bit key) header.d=mag2.com|490327
下記の様にsubject以降が文字化けをしています。
Subject: ????BBIQ?STEP?????????????300MB???|34
|35
|36
Subject: 【重要】BBIQ「STEPプラン」通信量のお知らせ(300MB超過)
■□■━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━■□■
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- PHP 【PHP/MySQL】コード上で生成したクエリを基に集計クエリを作りたい 1 2022/07/28 15:06
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl:Unicodeプロパティ作れない
-
perlでuse utf8でsjisのファイ...
-
Perl cgiの文字化けを直したい ...
-
FindFirstFileとFindNextFileで...
-
ExcelをCSV書き出す場合のシー...
-
perlにて2つのファイル比較
-
ファイル名を複数個配列で確保...
-
バッチファイルの作り方(CSV→...
-
Windowsで複数のファイルを同じ...
-
perlで、後ろの行を読んで、前...
-
VBAで巨大なファイルの途中から...
-
fopenでディレクトリ内の全ファ...
-
awkスクリプトでダブルクォーテ...
-
batファイルでrenameができませ...
-
python renameについて
-
DOSコマンドで、標準出力を出力...
-
close()で例外が投げられる理由
-
window.open でのファイル指定方法
-
テキストファイルから日本語部...
-
htaccessで特定のディレクトリ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perlをwindows環境でshift-jis...
-
Perl cgiの文字化けを直したい ...
-
HTTP::Request::Common qw(POST...
-
perlでuse utf8でsjisのファイ...
-
消費税の計算で 税込価格から...
-
Perl:Unicodeプロパティ作れない
-
does not map to shiftjis は解...
-
Perlでのファイル出力における...
-
Perl utf8上でshiftjisをデコード
-
Data::Dumper;でダンプ後表示し...
-
複数種類の括弧でくくられてな...
-
ファイル出力をUTF8Nではなくて...
-
utf-8での日本語正規表現の書き方
-
[Perl]Shift-JISのXMLを解析する場
-
perlで新規ファイルを作成でき...
-
perlでのtext読み込み
-
perl5.8.3のunicode環境で日本...
-
[perl5.8] SJISから読み込んだ~と
-
Perl 正規表現について
-
Perlを用いて、XMLファイルの中...
おすすめ情報