[過去ログ]
Perlについての質問箱 64箱目 (1002レス)
Perlについての質問箱 64箱目 http://mevius.5ch.net/test/read.cgi/tech/1548981877/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
14: デフォルトの名無しさん [] 2019/02/18(月) 13:29:31.02 ID:trvxFZJG そういやUTF8だとprintfとかで幅を揃えるのができなくなったりして大変だな。 %-10sとかやっても漢字が入るとそこが出力時に3バイトになったりしてずれて役に立たない。 こういう幅とか考慮してフォーマットしてくれるモジュールあるんだろうか?perlだから誰かが作ってそうではあるが。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/14
15: デフォルトの名無しさん [sage] 2019/02/18(月) 15:02:51.14 ID:+OgI4mQP Unicode::GCStringでカラム数とれるっぽいから空白いくつ詰めるかは計算できそう http://mevius.5ch.net/test/read.cgi/tech/1548981877/15
16: デフォルトの名無しさん [] 2019/02/18(月) 18:04:58.85 ID:pGUSPpE4 かなり頑張ったがUTF8にするのは無理だということになって諦めた sjisとEUCとutf8が無駄に入り乱れる結果になった ファイル名はプログラム内部ではEUCで扱ってたり、実際のファイル名はsjisだったり、ファイルの中身はEUCだったり、通信はsjisだったり、 そもそも文字単位じゃなくてバイト単位でデータを管理する記述がめっちゃあったり、 ゴミかよ! http://mevius.5ch.net/test/read.cgi/tech/1548981877/16
17: デフォルトの名無しさん [] 2019/02/18(月) 20:51:52.45 ID:trvxFZJG 一生を掛けて修復するプログラムになったようだな。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/17
18: デフォルトの名無しさん [] 2019/02/18(月) 20:52:30.58 ID:trvxFZJG >>15 おお。ありがとう。やはりあったか。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/18
19: デフォルトの名無しさん [sage] 2019/02/26(火) 09:36:37.24 ID:DhIH/rsp $str = "abcdefg"; open( $fh,"<",\$str); open( $fh2,"<&",$fh); はできるけど open( \*STDIN,"<",\$str) open( \*STDIN,"<&",$fh) はできないんだな。知らなかった。"Bad file descriptor" って言われた。 どこかに書いてあったっけ? http://mevius.5ch.net/test/read.cgi/tech/1548981877/19
20: デフォルトの名無しさん [] 2019/02/26(火) 18:47:18.00 ID:vB+znWqX ちょっとマジで聞きたいことがあるんだが、cgiからブラウザに対してCP932でHTMLが出力されている。 もちろんヘッダも正しく指定されている。 んで、そのHTMLの中に、 <IMG SRC="あいうえお.jpg"> などと言う日本語のファイルが指定されているわけだ。 その日本語のファイル名も、CP932だ。 んで、ご丁寧にブラウザが自動でURLエンコードしてくれるようなのだが、 %E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A.jpg となるのだ。これは "あいうえお.jpg" をUTF-8として解釈した時の文字コードだ。 俺としては %82%A0%82%A2%82%A4%82%A6%82%A8,jpg (CP932の文字コード)となってもらわなくては困る。 聞きたいことは2つで、これを解決するにはどうしたら良いか? もう一つは、ブラウザごとの仕様によりこの挙動は違うのか? の二点だ よろしく頼む http://mevius.5ch.net/test/read.cgi/tech/1548981877/20
21: デフォルトの名無しさん [] 2019/02/26(火) 20:23:51.98 ID:c2o2e7e/ >>20 自分でファイル名をそういう風にエンコードすれば? http://mevius.5ch.net/test/read.cgi/tech/1548981877/21
22: デフォルトの名無しさん [] 2019/02/26(火) 20:30:51.25 ID:vB+znWqX >>21 すまんが読めなくなるから駄目 あと、断定はしてないが、ブラウザやHTTPDのソフトごとに、エンコードやデコードの扱いの違いがある疑いがある 開発環境のwindowsでANHTTPDってやつ使ってるが、こいつはたぶんファイル名をデコードしてないくさい でも運用環境(有料で借りてる)のApacheさんはパスをURLデコードしてる模様 俺の予想だと、ブラウザも古いのだと絶対自動でUTF-8なんかにはデコードしないと思う。 もしかしたら間違ってるかもしれないけど 困る 統一して欲しい http://mevius.5ch.net/test/read.cgi/tech/1548981877/22
23: デフォルトの名無しさん [sage] 2019/02/26(火) 20:42:22.45 ID:RjPoX3nV perl関係ある? http://mevius.5ch.net/test/read.cgi/tech/1548981877/23
24: デフォルトの名無しさん [] 2019/02/26(火) 20:51:34.33 ID:vB+znWqX >>23 ほぼない けどWeb制作板に行くとエンコードどころか文字コードも理解してなかったから絶対回答こない http://mevius.5ch.net/test/read.cgi/tech/1548981877/24
25: デフォルトの名無しさん [] 2019/02/26(火) 21:02:05.63 ID:c2o2e7e/ どうしてもすぐになんとかしたいなら全てをUTF8にする。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/25
26: デフォルトの名無しさん [sage] 2019/02/26(火) 21:32:12.63 ID:tHWhBgwU ほんとにcp932なのか? 実はUTF-8で出力されてて、ヘッダはただ無視されてたりしないのか? まず、クライアントでデータを保存して、バイナリエディタで確認してみたら? http://mevius.5ch.net/test/read.cgi/tech/1548981877/26
27: デフォルトの名無しさん [sage] 2019/02/26(火) 22:01:28.20 ID:DhIH/rsp そのような不正な URL がどのように扱われるかを問うのはあまり有意義とは思えない。 適切に扱ってほしいなら適切にエンコードするしかないと思うのだが。 HTML::Element とか URI を使えば簡単だよ。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/27
28: デフォルトの名無しさん [] 2019/02/27(水) 00:05:17.07 ID:7T/MRSXz >>26 ほんとにcp932 なのにutf8でエンコードされる >>27 cgiは、どっかにあるHTMLが書いてあるテキストファイルを読み込んで出力してるだけだから、<IMG SRC="あいうえお.jpg">のあいうえおの部分を見つけ出してエンコードするのは無理がある。 さらにエンコード下として、それをデコードしてパスを通すhttpdと通さないhttpdがあるようなので仕様を知りたい http://mevius.5ch.net/test/read.cgi/tech/1548981877/28
29: デフォルトの名無しさん [sage] 2019/02/27(水) 02:26:58.26 ID:Hcodp8Vt ホントにそうなら、やっぱブラウザのせいなんかね。 データをデコードしたテキストをそのままURLにしたら、たしかにそうなりそうな気はする。 どうしてもあちこちいじらずに簡単に対処するなら、サーバーのほうはどう? プロキシとかRewriteとか使って、とにかくURLを受けてしまってから、受けたURLを動的に解釈したら? http://mevius.5ch.net/test/read.cgi/tech/1548981877/29
30: デフォルトの名無しさん [] 2019/02/27(水) 03:01:51.84 ID:7T/MRSXz >>29 もうcp932のファイル名はやめて全部アルファベットにしようと思うのだが、 Rewriteってなんだろう アニメが出てきたんだが まあおまえらありがとうな utf8ならまだしもcp932のファイル名をそのまま使おうとした俺が悪かったんだよきっと でもwindowsがcp932のファイル名だからしょうがないんだよ http://mevius.5ch.net/test/read.cgi/tech/1548981877/30
31: デフォルトの名無しさん [sage] 2019/02/27(水) 09:17:13.93 ID:MitD/HmJ >>20 ブラウザがUTF-8 と解釈するのは、HTML のheader に、言語の指定をしていないからじゃないの? ただし、sjis を指定しても、そのPC がsjis に対応していないかも? >>22 >運用環境(有料で借りてる)のApacheさんはパスを、URLデコードしてる模様 URLデコードするかどうかを、設定ファイルで指定できないの? >>30 web 系は、すべてのファイルを、BOM 無しUTF-8(UTF-8N)に統一すべき! 他の言語を使うと、PC・スマホがその言語に対応していない場合に、バグる http://mevius.5ch.net/test/read.cgi/tech/1548981877/31
32: デフォルトの名無しさん [sage] 2019/02/27(水) 10:18:43.12 ID:HuFKesk6 バグる、ですか http://mevius.5ch.net/test/read.cgi/tech/1548981877/32
33: 31 [sage] 2019/02/27(水) 12:43:30.58 ID:MitD/HmJ 漏れは、web 系の本を、軽く数十冊は読んでるけど、 sjis のファイルを使う本は、見たことがない それに、パス・ファイル名などのシステムの構成物に、全角を使う本も見たことがない。 パス・ファイル名は、ファイル内容のテキストじゃない。 あくまでもシステムの構成物だから、半角英数字が基本 Linux・Windows 共用のパス・ファイル名には、半角英数字と、_ (アンダーバー)だけを使う。 半角空白もバグるので、すごく嫌われる さらに、大文字小文字だけが異なる、パス・ファイル名も使ってはいけない。 例えば、Ab, aB がLinuxでは使えるけど、Windowsでは共存できないから だから、このシステムは、sjis・全角の2つを使う、違反を起こしている! こういうやり方を書いた本は、絶対に無いはず sjis を使っているのは、ロートルの5ch ぐらいw だから少しでも、5chのシステムをいじるとバグるから、システムを修正できない! http://mevius.5ch.net/test/read.cgi/tech/1548981877/33
34: デフォルトの名無しさん [sage] 2019/02/27(水) 13:14:56.19 ID:FWLYBGBg >>30 「RewriteRule」。 # 「httpd」とかいうから、Apacheに詳しいんかと思ってた。 要はとにかく、サーバーがURLを受けてから、それをランタイムで変換して実際のアクセス先を決めることはできるはず、という提案。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/34
35: デフォルトの名無しさん [sage] 2019/02/27(水) 13:19:18.71 ID:FWLYBGBg >>31 URLデコードを禁止できるか? URLの仕様なのに。 それに、もししたとしたら、CGIの引数とかどうなるんだ? http://mevius.5ch.net/test/read.cgi/tech/1548981877/35
36: デフォルトの名無しさん [] 2019/02/27(水) 14:29:50.58 ID:7T/MRSXz >言語の指定をしていないからじゃないの? してる >$print_code .= q[Content-Type: text/html;charset=Shift_JIS] . qq[\n]; >$print_code .= q[<META http-equiv="content-type" charset="Shift_JIS">]; >URLデコードするかどうかを、設定ファイルで指定できないの? 金払って借りてるマシンなのでたぶん無理なんじゃね? いやApacheさんの使い方とか仕様とか全然知らないから知らんけど >UTF-8(UTF-8N)に統一すべき! cgiが古いんだよ 作り直したいけど簡単そうじゃないので放置してる 気持ち的には全部utf8にしたい >>34 俺のサーバーじゃないけどそんなこと出来るのか? http://mevius.5ch.net/test/read.cgi/tech/1548981877/36
37: 31 [sage] 2019/02/27(水) 15:05:26.60 ID:MitD/HmJ >>36 >$print_code .= q[Content-Type: text/html;charset=Shift_JIS] . qq[\n]; >$print_code .= q[<META http-equiv="content-type" charset="Shift_JIS">]; 「html sjis meta」で検索すると、以下が見つかる。 上とは、ちょっと違う <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> 他には、PHP で作ったそのファイルが、UTF-8 で保存されているとか? 「html sjis 文字化け」で検索すれば? 文字化けを防ぐ&解消する方法 https://www.be-webdesigner.com/tips/coding/mojibake.htm http://mevius.5ch.net/test/read.cgi/tech/1548981877/37
38: デフォルトの名無しさん [sage] 2019/02/27(水) 20:57:58.02 ID:Hcodp8Vt >>36 レンサバでも、管理者だったらいろいろできる。 しかし、もしそうだったとしても、どうやらたぶんおまえにはムリぽなので、もうあきらめろん。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/38
39: デフォルトの名無しさん [sage] 2019/03/02(土) 02:33:03.15 ID:LJe83Rmr >>20-21 ブラウザごとにURLエンコードは統一は取れてなかったと思うよ まず開発環境としてANHTTPDの使用をやめることをお勧めする IISかApacheをインストールして使った方がいいと思う http://mevius.5ch.net/test/read.cgi/tech/1548981877/39
40: デフォルトの名無しさん [] 2019/03/04(月) 18:44:25.85 ID:G/cMwSEz https://lavender.5ch.net/test/read.cgi/airline/1551189110/ このツールが使えない 誰か使い方を教えてくれ ソースを拡張子.plにして保存、perl実行環境はインストール ここまでは出来てる ソースの改造の仕方が分からない http://mevius.5ch.net/test/read.cgi/tech/1548981877/40
41: デフォルトの名無しさん [] 2019/03/04(月) 19:13:42.66 ID:Y5viPS4k 連投ツールとか名前が穏やかじゃないから教えない http://mevius.5ch.net/test/read.cgi/tech/1548981877/41
42: デフォルトの名無しさん [] 2019/03/04(月) 19:18:59.22 ID:TpCWsYE8 今の5chではスクリプトによる連投はできないのでは? 試したことないのでわからんが。 しかしそのツールなんでわざわざforkして子プロセスに同じことさせてんだろ?その辺がワザなのか?よくわからんね。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/42
43: デフォルトの名無しさん [sage] 2019/03/04(月) 20:43:15.61 ID:q6ai/7VO Perl は初めてかい? まず、Perl の勉強からだね。 何をするプログラムかは後回しにして、何が書かれているかを理解できるようになろう。 書かれていることを理解できるようになったら、使われているモジュールを理解しよう。 LWP を使ってみよう。勉強しなければならないことがたくさんあると気付くだろう。 最低でも HTTP の仕様書くらいは読まないと話にならない。 ここまでできれば最初のソースコードを理解して改造だってできるかも。 http://mevius.5ch.net/test/read.cgi/tech/1548981877/43
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 959 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.022s