質問編集履歴

2

誤字の修正

2022/04/15 06:55

投稿

dev-beginner
dev-beginner

スコア25

test CHANGED
File without changes
test CHANGED
@@ -62,7 +62,7 @@
62
62
  exit;
63
63
  ```
64
64
 
65
- ■HTML(EUC-JP)ソースコード
65
+ ■HTML(UTF-8)ソースコード
66
66
  ```HTML
67
67
  <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
68
68
  <html lang="ja">

1

分かりやすく修正

2022/04/15 06:53

投稿

dev-beginner
dev-beginner

スコア25

test CHANGED
@@ -1 +1 @@
1
- Perl cgi UTF-8、EUCを使用した際の文字化けについて
1
+ CGI(Perl)にて複数の文字コードのファイルを読み込んだ際(UTF-8、EUC)の文字化けについて
test CHANGED
@@ -15,26 +15,49 @@
15
15
  use HTML::Template;
16
16
  use XML::TreePP;
17
17
 
18
+ use Config::Tiny;
19
+
20
+
21
+
18
22
  ### 初期設定 -------------------------------------
19
23
  my $tmpl_html;
20
24
  # テンプレートをセット
21
25
  $tmpl_html = HTML::Template->new(filename => './test.html');
22
26
 
23
- my $testxml = './Test.xml';
27
+ my $testxml = './test.xml';
24
28
 
25
29
  my $tpp = XML::TreePP->new();
26
30
  $tpp->set( force_array => [qw( REC )] );
27
- $tpp->set( utf8_flag => 1 );
31
+ #$tpp->set( utf8_flag => 1 );
28
32
  $tpp->set( ignore_error => 1 );
29
33
  my $myxml = $tpp->parsefile( "$testxml" );
30
34
 
31
- my $test = $myxml->{DATA}->{SETTING}->{TEST};
32
35
 
36
+ my $test = $myxml->{DATA}->{TEST};
33
- $tmpl_html->param('TEST' => $test);
37
+ $tmpl_html->param('XML' => $test);
38
+
39
+
40
+ my $config = Config::Tiny->read("./test.ini"); # settei.iniの読込
41
+ my $ini = $config->{"test"}->{"test_ini"};
42
+ $tmpl_html->param('INI' => $ini);
43
+
44
+
45
+ my $testtext = './test.txt';
46
+ open(TXT, "< $testtext") or die "Can't Open TXT file.\n";
47
+ my $testtext2 = <TXT>;
48
+ close(TXT);
49
+ $tmpl_html->param('TXT' => $testtext2);
50
+
51
+
52
+
34
53
 
35
54
  # HTML書き出し
36
55
  print "Content-type: text/html; charset=EUC-JP\n\n";
37
56
  print Jcode->new($tmpl_html->output)->euc;
57
+
58
+ #print "Content-type: text/html; charset=EUC-JP\n\n";
59
+ #print $tmpl_html->output;
60
+
38
61
 
39
62
  exit;
40
63
  ```
@@ -45,18 +68,24 @@
45
68
  <html lang="ja">
46
69
  <head>
47
70
 
48
- <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
71
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
49
- <title>TEST PAGE</title>
72
+ <title>MEVIUS | 管理者メニュー</title>
50
73
  <meta http-equiv="Content-Language" content="ja">
51
74
  <meta http-equiv="Content-Style-Type" content="text/css">
52
75
  <meta http-equiv="Content-Script-Type" content="text/javascript">
76
+ <meta name="Copyright" content="株式会社アイシン">
53
77
  </head>
54
78
 
55
79
  <body>
56
80
 
57
81
  あいうえお
58
82
  <br>
83
+ <tmpl_var name="XML">
84
+ <br>
85
+ <tmpl_var name="INI">
86
+ <br>
59
- <tmpl_var name="TEST">
87
+ <tmpl_var name="TXT">
88
+
60
89
 
61
90
  </body>
62
91
  </html>
@@ -67,19 +96,31 @@
67
96
  ```XML
68
97
  <?xml version="1.0" encoding="UTF-8" standalone="no"?>
69
98
  <DATA>
70
- <SETTING>
71
- <TEST>テスト</TEST>
99
+ <TEST>XMLファイル</TEST>
72
- </SETTING>
73
100
  </DATA>
74
101
  ```
75
102
 
76
- 出力結果-------------------------------------
103
+ iniファイル(EUC-JP)ソースコード
104
+ ```XML
105
+ [test]
77
- ¤¢¤¤¤¦¤¨¤ª
106
+ test_ini=イニファイル
107
+ ```
108
+
109
+ ■txtファイル(EUC-JP)ソースコード
110
+ ```XML
78
- テスト
111
+ ストファイル
112
+ ```
79
113
 
80
114
 
115
+ ■出力結果-------------------------------------
116
+ あいうえお
117
+ XMLファイル
118
+ ??????????
119
+ ?????????????
120
+
121
+
81
- 上記のような出力結果になり、HTMLに記載している「あいうえお」が文字化けします。
122
+ 上記のような出力結果になり、EUC-JPiniファイル、txtファイルの値が文字化けします。
82
- どなたかご教授i頂けると幸いです。
123
+ どなたかご教授頂けると幸いです。
83
124
  宜しくお願い致します。
84
125
 
85
126