<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SJIS | ウダ2Blog</title>
	<atom:link href="https://uda2.com/blog/tag/sjis/feed/" rel="self" type="application/rss+xml" />
	<link>https://uda2.com/blog</link>
	<description>大阪でフリーランスとしてWEB制作している管理人が気になった技術をメモったり、作ったツールの紹介などを綴っているブログです。</description>
	<lastBuildDate>Wed, 06 May 2015 13:05:54 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>文字コードで気をつけること</title>
		<link>https://uda2.com/blog/multibyte/</link>
					<comments>https://uda2.com/blog/multibyte/#respond</comments>
		
		<dc:creator><![CDATA[uda2]]></dc:creator>
		<pubDate>Wed, 06 May 2015 13:05:54 +0000</pubDate>
				<category><![CDATA[制作日記]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SJIS]]></category>
		<category><![CDATA[UTF-8]]></category>
		<category><![CDATA[文字コード]]></category>
		<guid isPermaLink="false">http://uda2.com/blog/?p=1941</guid>

					<description><![CDATA[<p>よく「JIS（ISO-2022-JP）」と表現されますが、PHPでは「ISO-2022-JP」と「JIS」は違う文字コードになります。 「ISO-2022-JP」はメールでよく使われる文字コードで規格を厳守してるので機種</p>
The post <a href="https://uda2.com/blog/multibyte/">文字コードで気をつけること</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>よく「JIS（ISO-2022-JP）」と表現されますが、PHPでは「ISO-2022-JP」と「JIS」は違う文字コードになります。<br />
「ISO-2022-JP」はメールでよく使われる文字コードで規格を厳守してるので機種依存文字（ISO-2022-JP規定外文字）や半角カナ共に扱えません。<br />
一方「JIS」は半角カナが使え、機種依存文字が扱えない。<br />
八方ふさがりのように見えるがPHP5.2.1からは「ISO-2022-JP-MS」が用意されており、コレだと機種依存文字も半角カナも扱える。<br />
「メールはJISだから機種依存文字や半角カナが送信出来ない」はずだが、ISO-2022-JPのふりして中身をISO-2022-JP-MSにすると機種依存文字が送れたりします。（受け手のメールソフトが対応してた場合のみですが・・・）<br />
<span id="more-1941"></span><br />
このように元の規格を拡張したものは他にも多くあり、有名な所で<br />
「SJIS」と「SJIS-win」<br />
「EUC-JP」と「eucJP-win」と「CP51932」<br />
といったものがある。</p>
<p>SJISだと「¥」(0x5C) を検索すると「表」(0x95 0x5C) にマッチしてしまったり<br />
EUC-JPだと「海」(0xB3 0xA4) を検索すると「ここ」(0xA4 0xB3 0xA4 0xB3) にマッチしてしまったりする。<br />
そのため低速なマルチバイトに対応した関数（mb_）を利用する必要があった。<br />
それがUTF-8が全盛の時代になって文字コード問題に対して配慮する必要が減ったが無くなった訳では無い。</p>
<h4>BOM問題</h4>
<p>文章ファイルを保存時にBOM（Byte Order Mark）と呼ばれる「0xEF 0xBB 0xBF」の3バイト文字を付けるか付けないかで、BOMありを「UTF-8」としBOMなしを「UTF-8N」と呼んだりする。Linux系のスクリプト（PHP等）ではファイルの先頭の文字にBOMがあると正常に動かないし逆にMicrosoft製のソフトではBOMが無いと正常に動かない。</p>
<h4>&#12316; （波ダッシュ）問題</h4>
<p><a href="http://ja.wikipedia.org/wiki/%E6%B3%A2%E3%83%80%E3%83%83%E3%82%B7%E3%83%A5" target="_blank">波ダッシュ &#8211; Wikipedia</a>に詳しく書かれてるが古いWindowsのアプリで編集すると〜が消えてしまう。</p>
<h4>UTF-8 4バイト問題</h4>
<p>UTF-8に対応してると言ってもソフトによっては3バイトまでしか対応していなかったりする。<br />
例えば「辰&#134071;&#131083;一郎」の&#134071;（吉）と&#131083;（丈）といった4バイト文字を扱おうとすると、個人的に愛用してる「Mery」も少し前のバージョンは表示できなかったし、人気DB「MySQL」もちょっと前まで未対応だった。MySQLの場合は<a href="http://dev.classmethod.jp/cloud/aws/utf8mb4-on-rds-mysql/" target="_blank">RDS MySQL5.5.33 で『utf8mb4』(4バイト対応UTF-8文字コードセット)を試してみた</a>を試してみたの通りすると対応出来るらしい。MySQLのバージョンや設定が変えられない場合は該当文字を実体参照にして格納する方法もあります。</p>The post <a href="https://uda2.com/blog/multibyte/">文字コードで気をつけること</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://uda2.com/blog/multibyte/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
