#author("2022-10-28T08:42:31+00:00","default:admin","admin")
#author("2022-10-28T08:42:41+00:00","default:admin","admin")
*全角・半角 [#odabda30]
**変換 [#p675389c]
***[[mb_convert_kana:https://www.php.net/manual/ja/function.mb-convert-kana.php]] [#bcbb0537]
-[[phpのmb_convert_kanaを使って全角・半角の変換を行おう!:https://blog.codecamp.jp/programming-php-mb_convert_kana
-[[phpのmb_convert_kanaを使って全角・半角の変換を行おう!:https://blog.codecamp.jp/programming-php-mb_convert_kana]]

*機種依存文字 [#gb762021]
-[[機種依存文字 - Wikipedia:https://ja.wikipedia.org/wiki/%E6%A9%9F%E7%A8%AE%E4%BE%9D%E5%AD%98%E6%96%87%E5%AD%97]]
-[[機種依存文字について - 農林水産省:https://www.maff.go.jp/j/use/kisyu_izon.html]]
-[[代表的な機種依存文字一覧:https://mect-japan.com/2019/guide/izon.html]]

-[[【php】はしご高が文字化けしない文字コード変換:https://www.softel.co.jp/blogs/tech/archives/5145]]
-[[PHPでPCの機種依存文字を検出し、変換(削除)する。:https://pgmemo.tokyo/data/archives/978.html]]

**機種依存文字の判定 [#re0bb74b]
-[[フォームのバリデーションでよく使う項目をまとめた小話:https://blog.8bit.co.jp/?p=19649#i-2]]
--機種依存文字をShift-JISに変換してからUTF-8に戻した場合、元の文字と異なるので、そこでエラーを出す

***サンプルコード [#n7d9352d]
 <?php
 
 //---- 機種依存文字:あり ----
 $strText = "髙橋";
 //$strText = "㈱あいうえお";
 //$strText = "№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻";
 //$strText = "㍉ ㎜ ㎝ ㎞ ㎎ ㎏ ㏄㍉㌔ ㌢ ㍍㌘ ㌧ ㌃ ㌶ ㍑㍗ ㌍ ㌦ ㌣ ㌫ ㍊ ㌻";
 //$strText = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳";
 //$strText = "ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ";
 //$strText = "¥$¢£%‰℃Å";
 //$strText = "ⅠⅡⅢⅣⅤ≡∑∫∮√⊥∠∟⊿∵∩∪・";
 //$strText = "纊鍈蓜炻棈兊夋奛奣寬﨑嵂";
 
 //---- 機種依存文字:なし ----
 //$strText = "高橋";
 //$strText = "ハンカクカタカナ";
 //$strText = "〇○◇□△▽☆●◆■▲▼★◎◯♂♀〒";
 //$strText = "→←↑↓⇒⇔";
 //$strText = "…‥、。,.・:;?!゛゜´`¨^ヽヾゝゞ〃°′″";
 //$strText = "+-±×÷=≒≠≦≧<≪≫∞∽∝∴∵∈∋⊆⊇⊂⊃∪∩∧∨⇒⇔∀∃∠⊥⌒∂∇≡√∫∬";
 //$strText = "ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω";
 //$strText = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя";
 //$strText = "─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂";
 //$strText = "#&*@§※〓♯♭♪†‡¶仝々〆ー~ ̄_―‐∥|/\";
 
 if (checkU2S($strText)) {
 	echo "機種依存文字が入ってます\n";
 } else {
 	echo "機種依存文字は入っていません\n";
 }
 
 function checkU2S($s){
 	$mb_encode = mb_detect_encoding($s);
 	if ($mb_encode == "UTF-8") {
         	return strlen($s) !== strlen(mb_convert_encoding(mb_convert_encoding($s,'sjis','UTF-8'),'UTF-8','sjis'));
     	} else {
 		return strlen($s) !== strlen(mb_convert_encoding(mb_convert_encoding($s,'sjis-win','UTF-8'),'UTF-8','sjis-win'));
     	}
 }
 
 ?>

*Unicode文字 [#lcfc8136]
-[[【Sqlserver】【Access】文字化けの原因は、環境依存文字じゃなくUnicode文字!?:https://pctips.jp/pc-soft/unicode-moji/]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS