*\r
* license based on GPL(GNU General Public License)\r
*\r
- * Ver.0.35 (2004/9/26)\r
+ * Ver.0.37 (2005/1/30)\r
*/\r
\r
\r
$sjis_match = "[\x81-\x9F,\xE0-\xFC]([\x40-\xFC])|[\x01-\x7F]|[\xA0-\xDF]";\r
$euc_match = "[\xa1-\xfe]([\xa1-\xfe])|[\x01-\x7f]|\x8e([\xa0-\xdf])";\r
$utf8_match = "[\x01-\x7F]|[\xC0-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF][\x80-\xBF]";\r
+$jis_match = "(?:^|\x1b\(\x42)([^\x1b]*)|(?:\x1b\\$\x42([^\x1b]*))|(?:\x1b\(I([^\x1b]*))";\r
\r
function mb_language($language)\r
{\r
\r
function _jistosjis(&$str)\r
{\r
- global $_euctosjis_byte1, $_euctosjis_byte2;\r
- \r
+ global $_euctosjis_byte1, $_euctosjis_byte2, $jis_match;\r
\r
- $jis_match = "(?:^|\x1b\(B)([^\x1b]*)|\x1b$B([^\x1b]*)|\x1b\(I([^\x1b]*)";\r
$max = preg_match_all("/$jis_match/", $str, $allchunks, PREG_SET_ORDER); // \95¶\8e\9a\8eí\82²\82Æ\82Ì\94z\97ñ\82É\95ª\89ð\r
$st = '';\r
for ($i = 0; $i < $max; ++$i) {\r
\r
function _sub_quoted_printable_encode($str, $encoding, $maxline, $linefeed)\r
{\r
- global $_mb_encoding, $euc_match, $utf8_match, $sjis_match;\r
+ global $_mb_encoding, $euc_match, $utf8_match, $sjis_match, $jis_match;\r
switch ($_mb_encoding[$encoding]) {\r
case 0 : //ascii\r
$allchars[0] = unpack("c*", $str);\r
$max = preg_match_all("/$utf8_match/", $str, $allchars);\r
break;\r
case 3 : //jis\r
- $jis_match = "(?:^|\x1b\(B)([^\x1b]*)|\x1b$B([^\x1b]*)|\x1b\(I([^\x1b]*)";\r
$max = preg_match_all("/$jis_match/", $str, $allchunks, PREG_SET_ORDER); // \95¶\8e\9a\8eí\82²\82Æ\82Ì\94z\97ñ\82É\95ª\89ð\r
$st = ''; // quoted printable\95Ï\8a·\8cã\82Ì\95¶\8e\9a\97ñ\r
$len = $maxline; // \82»\82Ì\8ds\82É\92Ç\89Á\89Â\94\\82È\83o\83C\83g\90\94\r
\r
function _sub_encode_base64($str, $encoding, $maxline , $linefeed)\r
{\r
- global $_mb_encoding, $euc_match, $utf8_match, $sjis_match;\r
+ global $_mb_encoding, $euc_match, $utf8_match, $sjis_match, $jis_match;\r
switch ($_mb_encoding[$encoding]) {\r
case 0 : //ascii\r
return chunk_split( base64_encode($str) , $maxline, $linefeed);\r
$max = preg_match_all("/$utf8_match/", $str, $allchars);\r
break;\r
case 3 : //jis\r
- $jis_match = "(?:^|\x1b\(B)([^\x1b]*)|\x1b$B([^\x1b]*)|\x1b\(I([^\x1b]*)";\r
$max = preg_match_all("/$jis_match/", $str, $allchunks, PREG_SET_ORDER); // \95¶\8e\9a\8eí\82²\82Æ\82Ì\94z\97ñ\82É\95ª\89ð\r
$st = ''; // BASE64\95Ï\8a·\8cã\82Ì\95¶\8e\9a\97ñ\r
$maxbytes = floor($maxline * 3 / 4); //1\8ds\82É\95Ï\8a·\89Â\94\\82È\83o\83C\83g\90\94\r