* NOTE: shift_jis is only supported for output. Using shift_jis in DB is prohibited.
* NOTE: iso-8859-x,windows-125x if _CHARSET is unset.
*/
- function sql_set_charset_jp($charset) {
+ function sql_set_charset_jp($charset,$mode = NULL) {
switch(strtolower($charset)){\r
- case 'utf-8':\r
+ case 'utf-8':
+ case 'utf8':\r
$charset = 'utf8';\r
break;\r
- case 'euc-jp':\r
+ case 'euc-jp':
+ case 'ujis':\r
$charset = 'ujis';\r
break;\r
case 'gb2312':\r
$charset = 'gb2312';\r
- break;\r
- case 'shift_jis':\r
+ break;
+ /*\r
+ case 'shift_jis':
+ case 'sjis':\r
$charset = 'sjis';\r
- break;\r
- default:\r
+ break;
+ */\r
+ default:
+ $charset = 'latin1';\r
break;\r
}
$mySqlVer = implode('.', array_map('intval', explode('.', sql_get_server_info())));
if (version_compare($mySqlVer, '5.0.7', '>=') && function_exists('mysql_set_charset')) {
$res = mysql_set_charset($charset);
} elseif (version_compare($mySqlVer, '4.1.0', '>=')) {
- $res = sql_query("SET CHARACTER SET " . $charset);
+ $res = ($mode == 'NAMES')
+ ?sql_query("SET NAMES " . $charset)
+ :sql_query("SET CHARACTER SET " . $charset)
+ ;
}
return $res;
}