{"id":748,"date":"2021-07-09T11:47:16","date_gmt":"2021-07-09T02:47:16","guid":{"rendered":"http:\/\/www.cl.cs.okayama-u.ac.jp\/?p=748"},"modified":"2023-07-20T10:55:25","modified_gmt":"2023-07-20T01:55:25","slug":"pukiwiki-1-4-5_1-euc%e3%82%92-pukiwiki-1-5-0utf-8%e3%81%ab%e6%9b%b4%e6%96%b0%e3%81%97%e3%81%9f-2021-4","status":"publish","type":"post","link":"https:\/\/www.cl.cs.okayama-u.ac.jp\/?p=748","title":{"rendered":"Pukiwiki 1.4.5_1 (EUC)\u3092 Pukiwiki 1.5.0(UTF-8)\u306b\u66f4\u65b0\u3057\u305f\u3068\u304d\u306e\u30e1\u30e2 (2021\/4)"},"content":{"rendered":"<h2>\u7814\u7a76\u5ba4\u3067\u4f7f\u3063\u3066\u308bpukiwiki\u304c\u7a81\u5982\u771f\u3063\u767d<\/h2>\n<p>\u304b\u306a\u308a\u6614\u304b\u3089\u4f7f\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u8868\u793a\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u66f4\u65b0\u3057\u307e\u3057\u305f\uff0e\u6587\u5b57\u5217\u304cEUC\u3067\u4f5c\u6210\u3057\u3066\u3044\u305f\u306e\u3067UTF-8\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\u304b\u306a\u308a\u82e6\u52b4\u3057\u305f\u306e\u3067\u5c11\u3057\u30e1\u30e2\u3092\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\uff0eweb\u4e0a\u306e\u8a18\u8ff0\u3082\u307b\u3068\u3093\u3069\u306a\u3044\u3067\u3059\u306d\uff0e(3\u30f6\u6708\u524d\u306b\u884c\u3063\u305f\u3068\u304d\u306e\u8a18\u61b6\u3067\u66f8\u304f\u306e\u3067\u5c11\u3057\u9055\u3046\u304b\u3082\u77e5\u308c\u307e\u305b\u3093)<\/p>\n<p>\u3084\u308b\u3053\u3068<\/p>\n<ol>\n<li>pukiwiki1.4.5_1\u3092 pukiwiki1.5.0\u306b\u66f4\u65b0<\/li>\n<li>EUC\u3067\u66f8\u304b\u308c\u3066\u3044\u308b\u90e8\u5206\u3092\u5168\u90e8 UTF-8\u306b\u3059\u308b\u3000(\u3053\u308c\u304c\u30db\u30f3\u30c8\u306b\u5927\u5909)<\/li>\n<\/ol>\n<p>(\u305f\u3060\u3057 attache\u306e\u90e8\u5206\u306f\u3067\u304d\u3066\u3044\u307e\u305b\u3093\uff0e\u66f4\u65b0\u306e\u969b\u306b\u6368\u3066\u307e\u3057\u305f)<\/p>\n<h2>\u65b0\u898fpukiwiki1.5.0\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>\u3053\u308c\u306f\u307b\u3068\u3093\u3069\u554f\u984c\u306a\u3057\uff0e<a href=\"https:\/\/pukiwiki.osdn.jp\/?PukiWiki\/Install\/%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E6%96%B9%E6%B3%95#t22d4190\">\u516c\u5f0f<\/a>\u3092\u53c2\u8003\u306b<a href=\"https:\/\/ja.osdn.net\/projects\/pukiwiki\/releases\/\">dowload\u5148<\/a>\u304b\u3089 utf8\u7248\u306epukiwiki1.5.0\u3092\u9078\u629e\u3057\u3066download\uff0e\/var\/www\u306a\u3069 html\u3092\u5c55\u958b\u3057\u3066\u3044\u308b\u3068\u3053\u308d\u306b\u7f6e\u304f\u3068\u307e\u305a\u3059\u3050\u52d5\u3044\u305f\uff0e<\/p>\n<h2>\u65e7pukiwiki (EUC\u3067\u66f8\u304b\u308c\u3066\u3044\u308b) \u3092\u6587\u5b57\u5217\u3092\u5909\u66f4\u3057\u3066\u79fb\u884c<\/h2>\n<p>\/var\/www \u306a\u3069\u306e\u4e0b\u3067\u304a\u3044\u3066\u3044\u308b pukiwiki\/ \u4ee5\u4e0b\u306e\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3092\u3068\u308b<\/p>\n<p>\u57fa\u672c\u7684\u306battach\u3001backup\u3001cache\u3001counter\u3001diff\u3001wiki \u306e\u4ee5\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u3092pukiwiki1.5.0\u3068\u540c\u3058\u5834\u6240\u306b\u7f6e\u304f\u3068\u826f\u3044\uff0e\u305f\u3060\u3057\uff0c\u30d5\u30a1\u30a4\u30eb\u540d\u304c<span class=\"s1\">DEC9CDF8.txt\u306a\u3069\u3068encode\u3055\u308c\u3066\u3044\u3066\uff0c\u3053\u308c\u304c\u5168\u90e8EUC\u306b\u306a\u3063\u3066\u3044\u308b\u3082\u306e\u3092UTF-8\u306b\u3057\u306a\u3044\u3068\u8868\u793a\u3055\u308c\u306a\u3044\uff0e\uff0e\uff0e<\/span><\/p>\n<h2>encs.php\u3092\u4f7f\u3063\u3066\u5404EUC\u30a8\u30f3\u30b3\u30fc\u30c9\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u540d(\u4e2d\u8eab\u3082EUC)\u306e\u3082\u306e\u306fUTF-8\u30a8\u30f3\u30b3\u30fc\u30c9\u3057\u305f\u30d5\u30a1\u30a4\u30eb\u540d(\u4e2d\u8eab\u306fEUC\u306e\u307e\u307e)\u306b\u5909\u63db\u3059\u308b<\/h2>\n<p>\u307e\u305aencls.php\u3068\u3044\u3046\u3082\u306e\u3092download(\u516c\u5f0f\u306e\u3069\u3053\u304b\u306b\u6307\u793a\u304c\u3042\u308a\u307e\u3057\u305f)\uff0e\u3057\u304b\u3057\u4f7f\u3044\u65b9\u306b\u8aac\u660e\u7121\u3057\uff0e\u3053\u308c\u306f 1) \u6307\u5b9a\u3057\u305f\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3064\u3044\u3066 2) \u6307\u5b9a\u3057\u305f suffix\u306e\u30d5\u30a1\u30a4\u30eb\u3092 (.txt) \u3092\u8aad\u307f\u8fbc\u3093\u3067 3)\u6307\u5b9a\u3057\u305f\u6587\u5b57\u30a8\u30f3\u30b3\u30fc\u30c9\u306bencode\u3057\u305f\u540d\u524d\u3092 stdoud\u306b\u51fa\u529b\u3059\u308b\u3060\u3051\u3067\u3059\uff0e\u306a\u306e\u3067\u5b9f\u884c\u3057\u3066\u3082\u57fa\u672c\u7684\u306b\u306a\u306b\u3082\u5909\u5316\u304c\u3042\u308a\u307e\u305b\u3093\uff0e<\/p>\n<p>\u305d\u3053\u3067encs.php\u3092\u4e0b\u8a18\u306e\u3088\u3046\u306b\u66f8\u304d\u63db\u3048\u307e\u3057\u305f(\u4e00\u90e8\u8868\u793a)\uff0e\u3084\u3063\u3066\u3044\u308b\u3053\u3068\u306f1)\u6307\u5b9a\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u30d5\u30a1\u30a4\u30eb.suffix\u3092\u8aad\u307f\u8fbc\u3093\u3067 \u65b0\u898f\u306b \u30b5\u30d6\u30c7\u30a3\u30ec\u30af\u30c8\u30ea tmp\/\u306e\u4e0b\u306b UTF-8\u306e\u30d5\u30a1\u30a4\u30eb\u540d\u3067\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30d4\u30fc\u3057\u305f\u3082\u306e\u3092\u4f5c\u308b\u3068\u3044\u3046\u3082\u306e\u3067\u3059\uff0ewiki\u306e\u30c7\u30a4\u30ec\u30af\u30c8\u30ea\u304c\u3060\u3044\u305f\u3044\u672c\u4f53\u3067.txt\u3060\u3051\u3067\u3059\u304c cache (pukiwiki\u3060\u3068\u5de6\u5074\u306e\u66f4\u65b0\u30ea\u30b9\u30c8\u3067\u8868\u793a\u3055\u308c\u308b\u3068\u3053\u308d)\u304c .ref\u3068\u304b\u3042\u308b\u306e\u3067\uff0c\u305d\u308c\u305e\u308c\u306e\u30c7\u30a4\u30ec\u30af\u30c8\u30ea\u3067\u5c11\u3057\u305a\u3064\u5b9f\u884c\u3057\u3066 UTF-8\u306e\u30bf\u30a4\u30c8\u30eb\u306b\u5909\u66f4\u3057\u305f(\u304b\u3064\u4e2d\u8eab\u306e\u6587\u5b57\u5217\u3082EUC\u304b\u3089UTF-8)\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\uff0e<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-php\" data-lang=\"PHP\"><code>\/\/ Do\r\nmb_internal_encoding(SOURCE_ENCODING);\r\nmb_detect_order('auto');\r\n$write_dir = '.\/tmp\/'; \/\/\u3053\u308c\u52a0\u3048\u305f\r\n$matches = array();\r\nforeach ($argv as $arg) {\r\nif (preg_match('\/^(.+)(\\.[a-zA-Z0-9]+)$\/', $arg, $matches)) {\r\n$name = $matches[1];\r\n$suffix = $matches[2];\r\n} else {\r\n$name = $arg;\r\n$suffix = '';\r\n}\r\n\/\/echo $name . $suffix . \"\\n\"; \/\/ As-is\r\nif ($f_decode) {\r\n\/\/ Decord\r\necho decode($name) . $suffix . \"\\n\";\r\n} else {\r\n\/\/ Decord -&gt; convert -&gt; encode\r\necho encode(mb_convert_encoding(decode($name),\r\nTARGET_ENCODING, SOURCE_ENCODING)) .\r\n$suffix . \"\\n\";\r\n\/\/ copy files with new names &lt;&lt;&lt;&lt; \u3053\u3053\u3092\u66f8\u304d\u63db\u3048\u3066\u3044\u308b\uff0e\u3053\u3053\u304b\u3089 copy\u307e\u3067\r\n$euc_f_name = $name . $suffix ;\r\n$utf8_f_name = $write_dir . encode(mb_convert_encoding(decode($name),\r\nTARGET_ENCODING, SOURCE_ENCODING)) .\r\n$suffix;\r\ncopy($euc_f_name,$utf8_f_name);\r\n}\r\n\/\/echo \"\\n\";\r\n}<\/code><\/pre>\n<\/div>\n<p>\u4e0a\u8a18\u306e\u90e8\u5206\u306f\u5358\u306b tmp\u30d5\u30a1\u30a4\u30eb\u306b\u3000\u30d5\u30a1\u30a4\u30eb\u540d\u3092UTF-8\u306b\u5909\u63db\u3059\u308b\u3060\u3051\u3067\u3059\uff0e<\/p>\n<p>\u307e\u305a\u81ea\u5206\u306epukiwiki\u306e\u5168\u4f53\u3092\u30b3\u30d4\u30fc\u4f5c\u696d\u7528puwkiwki\u3092 \/home\/jibun\/old_pukiwiki\u3068\u3057\u3066\uff0c wiki\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3064\u3044\u3066\u4f5c\u696d\u3059\u308b\u3068\u3057\u307e\u3059\uff0e<br \/>\n\u5148\u306b\uff0c\/home\/jibun\/old_pukiwiki\/wiki\/tmp \u3092\u4f5c\u6210\u3057\u3066\u304a\u304d\u307e\u3059<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir \/home\/jibun\/old_pukiwiki\/wiki\/tmp<\/code><\/pre>\n<\/div>\n<p>\u305d\u308c\u3067\u4e0b\u8a18\u306e\u3088\u3046\u306b\u5b9f\u884c\u3057\u307e\u3059<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd \/home\/jibun\/old_pukiwiki\/wiki\r\nphp (enc.php\u3078\u306e\u30d1\u30b9)\/encls.php --all \r\n<\/code><\/pre>\n<\/div>\n<p>\u3059\u308b\u3068 \/home\/jibun\/old_pukiwiki\/wiki\/tmp \u306e\u4e0b\u306b utf-8\u540d\u306b\u306a\u3063\u305f\u30d5\u30a1\u30a4\u30eb\u304c\u30b3\u30d4\u30fc\u3055\u308c\u307e\u3059 (\u4e2d\u8eab\u306e\u6587\u5b57\u306fEUC\u306e\u307e\u307e)\uff0e<\/p>\n<p>\u6b21\u306b\uff0c \/home\/jibun\/old_pukiwiki\/wiki\/tmp \u306e\u4e0b\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u4e2d\u8eab\u3092EUC\u304b\u3089 UTF-8\u306b\u5909\u66f4\u3057\u307e\u3059\uff0e<br \/>\nnkf\u3092\u4f7f\u3044\u307e\u3057\u305f\uff0eCentOS7\u4e0a\u3067\u306f\u4e0b\u8a18\u306e\u3088\u3046\u306b\u5b9f\u884c\u3057\u307e\u3057\u305f\uff0e<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd \/home\/jibun\/old_pukiwiki\/wiki\/tmp\r\nfind . -type f -print0 | xargs -0 -n 256 nkf --overwrite -w -Lu<\/code><\/pre>\n<\/div>\n<p>\u3053\u306e\u5185\u5bb9\u3092 pukiwiki1.5.0\u306e wiki\u306e\u4e0b\u306b\u30b3\u30d4\u30fc\u3059\u308b\u3068\u898b\u3048\u307e\u3059\uff0e\u4ed6\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3082\u540c\u69d8\u3067\u3059\uff0e<\/p>\n<h2>cache\u306e\u5909\u63db<\/h2>\n<p>cache\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u5834\u5408\u306f\u4ed6\u306e\u30bf\u30a4\u30d7\u306e\u30d5\u30a1\u30a4\u30eb\u3082\u3042\u308b\u306e\u3067\u305d\u308c\u3082\u5909\u63db\u3057\u307e\u3059\uff0e<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>mkdir \/home\/jibun\/old_pukiwiki\/cache\/tmp\r\ncd \/home\/jibun\/old_pukiwiki\/cache\/<\/code><\/pre>\n<\/div>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>php (enc.php\u3078\u306e\u30d1\u30b9)\/encls.php --suffix='.ref' --all\r\nphp (enc.php\u3078\u306e\u30d1\u30b9)\/encls.php --suffix='.rel' --all<\/code><\/pre>\n<\/div>\n<p>\u3053\u308c\u3068\u30d5\u30a1\u30a4\u30eb\u540d\u304cautolink.dat\u306a\u3069\u82f1\u8a9e\u8868\u8a18\u3067\u5909\u63db\u3057\u306a\u3044\u3082\u306e\u3082\u3042\u308b\u306e\u3067\u305d\u308c\u306f\u30b3\u30d4\u30fc\u3057\u307e\u3059\uff0e<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cp *.dat tmp\/\r\ncp *.html tmp\/<\/code><\/pre>\n<\/div>\n<p>\u3053\u306e\u3042\u3068\u4e2d\u8eab\u3092utf-8\u306b\u3057\u307e\u3059<\/p>\n<div class=\"hcb_wrap\">\n<pre class=\"prism line-numbers lang-bash\" data-lang=\"Bash\"><code>cd \/home\/jibun\/old_pukiwiki\/cache\/tmp\r\nfind . -type f -print0 | xargs -0 -n 256 nkf --overwrite -w -Lu<\/code><\/pre>\n<\/div>\n<p>cache\/tmp\u306e\u5185\u5bb9\u3092 \u65b0\u898f\u3000 pukiwiki1.5.0\u306e cache\u306e\u4e0b\u306b\u7f6e\u304f\u3068\u5de6\u5074\u306b\u5c65\u6b74\u304c\u3067\u308b\u3068\u601d\u3044\u307e\u3059<\/p>\n<p>\u3042\u3068\u306ebackup\u306a\u3069\u306f\u307b\u3068\u3093\u3069\u4f7f\u3063\u3066\u7121\u304b\u3063\u305f\u306e\u3067\u5909\u63db\u3057\u307e\u3057\u305f\u304c\u78ba\u8a8d\u3057\u3066\u3044\u307e\u305b\u3093\uff0e<br \/>\n\u3042\u3068\uff0cattache\u3067\u3059\u304c\uff0c\u30d5\u30a1\u30a4\u30eb\u540d\u3068\u306e\u95a2\u4fc2\u304c\u8907\u96d1\u3067 (attache\u30d5\u30a1\u30a4\u30eb\u304c windows\u306e shift-jis\u306e\u30c6\u30ad\u30b9\u30c8\u306a\u3069\u3044\u308d\u3044\u308d\u3042\u308a\uff0c\u307e\u305f\u4f55\u756a\u76ee\u306e\u30d5\u30a1\u30a4\u30eb\u304cattache\u3055\u308c\u3066\u3044\u304b\u306a\u3069\u7ba1\u7406\u3055\u308c\u3066\u3044\u308b\u306e\u3067\u3059\u304c\uff0c\u305d\u3053\u3092\u5fa9\u5143\u3059\u308b\u306e\u304c\u96e3\u3057\u3044\u305d\u3046\u306a\u306e\u3067\u3057\u307e\u305b\u3093\u3067\u3057\u305f\uff0e<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7814\u7a76\u5ba4\u3067\u4f7f\u3063\u3066\u308bpukiwiki\u304c\u7a81\u5982\u771f\u3063\u767d \u304b\u306a\u308a\u6614\u304b\u3089\u4f7f\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u8868\u793a\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u66f4\u65b0\u3057\u307e\u3057\u305f\uff0e\u6587\u5b57\u5217\u304cEUC\u3067\u4f5c\u6210\u3057\u3066\u3044\u305f\u306e\u3067UTF-8\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\uff0e\u304b\u306a\u308a\u82e6\u52b4\u3057\u305f\u306e\u3067\u5c11\u3057\u30e1\u30e2\u3092\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\uff0ewe &hellip; <a href=\"https:\/\/www.cl.cs.okayama-u.ac.jp\/?p=748\">\u7d9a\u304d\u3092\u8aad\u3080 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,4],"tags":[],"class_list":["post-748","post","type-post","status-publish","format-standard","hentry","category-6","category-4"],"_links":{"self":[{"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/posts\/748","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=748"}],"version-history":[{"count":19,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/posts\/748\/revisions"}],"predecessor-version":[{"id":894,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=\/wp\/v2\/posts\/748\/revisions\/894"}],"wp:attachment":[{"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=748"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=748"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.cl.cs.okayama-u.ac.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=748"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}