{"id":1047,"date":"2017-01-02T20:32:59","date_gmt":"2017-01-02T11:32:59","guid":{"rendered":"http:\/\/randt.jp\/?p=1047"},"modified":"2017-01-02T20:36:47","modified_gmt":"2017-01-02T11:36:47","slug":"haskell%e5%86%85%e9%83%a8%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89","status":"publish","type":"post","link":"https:\/\/randt.jp\/?p=1047","title":{"rendered":"[haskell]\u5185\u90e8\u6587\u5b57\u30b3\u30fc\u30c9"},"content":{"rendered":"<p>Haskell\u306e\u6587\u5b57\u5217\u6271\u3044\u3092\u5c11\u3057<\/p>\n<pre>\r\nimport Codec.Binary.UTF8.String\r\n\r\n-- str = [\"\\x0041\", \"\\x3042\", \"\\x57CE\", \"\\x2F852\"]\r\nstr = [\"A\", \"\u3042\", \"\u57ce\", \"?\"]\r\n\r\nmain::IO()\r\nmain = do\r\n        putStrLn \"Haskell\u5185\u90e8\u30b3\u30fc\u30c9\"\r\n        mapM_ print str\r\n        mapM_ putStrLn str\r\n        putStrLn \"Haskell\u5185\u90e8\u30b3\u30fc\u30c9>UTF8\u30b3\u30fc\u30c9\"\r\n        mapM_ (\\x -> print $ encodeString x) str\r\n        mapM_ (\\x -> putStrLn $ decodeString $ encodeString x) str\r\n<\/pre>\n<p>\u51fa\u529b\u7d50\u679c<\/p>\n<pre>\r\n$ .\/strsmpl \r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\12354\"\r\n\"\\22478\"\r\n\"\\194642\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9>UTF8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\227\\129\\130\"\r\n\"\\229\\159\\142\"\r\n\"\\240\\175\\161\\146\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\n<\/pre>\n<p>Haskell\u5185\u90e8\u3067\u306f<a href=\"https:\/\/ja.wikipedia.org\/wiki\/Unicode\" target=\"_blank\">Unicode<\/a>\u30b9\u30ab\u30e9\u5024\u3067\u6271\u308f\u308c\u3066\u3044\u308b\u3002<\/p>\n<p>print\u306f\u3069\u3046\u3084\u3089Basic Latin\u3057\u304b\u6587\u5b57\u3092\u8868\u793a\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3001\u5f8c\u306f\u5185\u90e8\u30b3\u30fc\u30c9\u3092\u305d\u306e\u307e\u307e\u8868\u793a\u3057\u3066\u3044\u308b<\/p>\n<p>putStr(Ln)\u306b\u3064\u3044\u3066\u306f\u5185\u90e8\u30b3\u30fc\u30c9\u306b\u5fdc\u3058\u305f\u30d5\u30a9\u30f3\u30c8\u3092\u8868\u793a\u3057\u3066\u304f\u308c\u308b\u3002<\/p>\n<p>\u5185\u90e8\u30b3\u30fc\u30c9\u3068UTF-8\u3068\u306e\u5909\u63db\u306fencodeString(\u5185\u90e8\u30b3\u30fc\u30c9 >> UTF-8)\u3068decodeString\u3092\u4f7f\u3046\u3002<\/p>\n<\/p>\n<p>\u30d5\u30a9\u30f3\u30c8\u8868\u793a\u306b\u3064\u3044\u3066\u306fLANG\u74b0\u5883\u5909\u6570\u304c\u5f71\u97ff\u3059\u308b\u3002<\/p>\n<pre>$ LANG=en_US.UTF-8 .\/strsmpl \r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\12354\"\r\n\"\\22478\"\r\n\"\\194642\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9>UTF8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\227\\129\\130\"\r\n\"\\229\\159\\142\"\r\n\"\\240\\175\\161\\146\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\n<\/pre>\n<pre>\r\n$ LANG=ja_JP. .\/strsmpl \r\nHaskellstrsmpl: <stdout>: commitBuffer: invalid argument (invalid character)\r\n$ LANG=ja_JP.eucJP .\/strsmpl \r\nHaskellstrsmpl: <\/stdout><stdout>: commitBuffer: invalid argument (invalid character)\r\n$ LANG=ja_JP.ujis .\/strsmpl \r\nHaskellstrsmpl: <\/stdout><stdout>: commitBuffer: invalid argument (invalid character)\r\n$ LANG=en_US .\/strsmpl \r\nHaskellstrsmpl: <\/stdout><stdout>: commitBuffer: invalid argument (invalid character)\r\n$ LANG=en_US.UTF-8 .\/strsmpl \r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\12354\"\r\n\"\\22478\"\r\n\"\\194642\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\nHaskell\u5185\u90e8\u30b3\u30fc\u30c9>UTF8\u30b3\u30fc\u30c9\r\n\"A\"\r\n\"\\227\\129\\130\"\r\n\"\\229\\159\\142\"\r\n\"\\240\\175\\161\\146\"\r\nA\r\n\u3042\r\n\u57ce\r\n?\r\n<\/stdout><\/pre>\n<p>UTF-8\u3067\u3042\u308b\u3053\u3068\u3092LANG\u3067\u8a2d\u5b9a\u3057\u3066\u3044\u306a\u3044\u3068\u51fa\u529b\u3067\u4f8b\u5916\u3068\u306a\u308b<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Haskell\u306e\u6587\u5b57\u5217\u6271\u3044\u3092\u5c11\u3057 import Codec.Binary.UTF8.String &#8212; str = [&#8220;\\x0041&#8221;, &#8220;\\x3042&#8221;, &#8220;\\x57CE&#8221;, &#8220;\\x2F852&#8221;] str = [&#8220;A&#8221; &#8230;<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/randt.jp\/?p=1047\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[137],"tags":[143,142,139,140,141,138],"class_list":["post-1047","post","type-post","status-publish","format-standard","hentry","category-haskell","tag-decodestring","tag-encodestring","tag-haskell","tag-unicode","tag-utf-8","tag-138"],"_links":{"self":[{"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/posts\/1047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/randt.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1047"}],"version-history":[{"count":3,"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions"}],"predecessor-version":[{"id":1050,"href":"https:\/\/randt.jp\/index.php?rest_route=\/wp\/v2\/posts\/1047\/revisions\/1050"}],"wp:attachment":[{"href":"https:\/\/randt.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randt.jp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randt.jp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}