<?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>文字コード | ウダ2Blog</title>
	<atom:link href="https://uda2.com/blog/tag/%e6%96%87%e5%ad%97%e3%82%b3%e3%83%bc%e3%83%89/feed/" rel="self" type="application/rss+xml" />
	<link>https://uda2.com/blog</link>
	<description>大阪でフリーランスとしてWEB制作している管理人が気になった技術をメモったり、作ったツールの紹介などを綴っているブログです。</description>
	<lastBuildDate>Tue, 30 Oct 2018 16:00:08 +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>
		<item>
		<title>文字コードを疑え！</title>
		<link>https://uda2.com/blog/utf/</link>
					<comments>https://uda2.com/blog/utf/#respond</comments>
		
		<dc:creator><![CDATA[uda2]]></dc:creator>
		<pubDate>Tue, 24 Feb 2015 02:12:24 +0000</pubDate>
				<category><![CDATA[制作日記]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[文字コード]]></category>
		<guid isPermaLink="false">http://uda2.com/blog/?p=1663</guid>

					<description><![CDATA[<p>毎回では無いがPHPのようにサーバで生成されるページのデザイン等を修正するのに一旦HTMLとして保存し、静的ページとして保存してスタイルシートやJavaScriptを修正を進めたりする事もある。 今日もログイン後のページ</p>
The post <a href="https://uda2.com/blog/utf/">文字コードを疑え！</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></description>
										<content:encoded><![CDATA[<p>毎回では無いがPHPのようにサーバで生成されるページのデザイン等を修正するのに一旦HTMLとして保存し、静的ページとして保存してスタイルシートやJavaScriptを修正を進めたりする事もある。<br />
今日もログイン後のページの修正でログインが面倒なのでダウンロードしたHTMLをInternetExplorerで確認しながら修正を進めていき一段落が付いたのでFireFoxとChromeで確認してみると「SyntaxError: illegal character」（OperaだとUncaught SyntaxError: Unexpected token ILLEGAL）というエラーが現れスクリプトエラーになって動作しなくなった。<br />
ネットで検索しても解決法は見つからず小一時間ほど悩んでいたが、ふとエディタのウインドウ下のバーに見慣れない文字に気づいた。<br />
「UTF-16LE」<br />
作ったのは「UTF-8」でHTMLの宣言も「UTF-8」にしてるが、Internet Explorerで「ソースの表示」から「ファイル」の「上書き保存」とするとUTF-16LEで保存されるようだ（ちなみにOSはWindows2000から内部文字コードがUTF-16らしいが、少なくともInternetExplorer8までは正常な文字コード（UTF-8）で保存される）。<br />
IE以外は「UTF-16LE」のHTMLから見て「UTF-8」の外部ファイルを「UTF-16LE」と勘違いして読み込もうとして文字化けしてそれが不正な文字（illegal character）としてエラーになっていたようで、エディタにて「UTF-8」に戻したら直った。</p>
<p>ちなみにInternetExplorerでもソースを表示せずに「ファイル」「名前を付けて保存」からだと文字コードを選択可能ですし、標準でソースの文字コードが選択されてるので問題無いです。</p>The post <a href="https://uda2.com/blog/utf/">文字コードを疑え！</a> first appeared on <a href="https://uda2.com/blog">ウダ2Blog</a>.]]></content:encoded>
					
					<wfw:commentRss>https://uda2.com/blog/utf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
