这个真得用实验了...超越理论范畴...Plan A:
本系统不变
ucenter数据库操作用gb2312,显示用utf-8
觉得悬~~Plan B:
本系统不变
ucenter数据库操作用gb2312,gb2312转utf-8(貌似见过这个函数),显示用utf-8
还是悬~~Plan C:
本系统不变
ucenter数据库操作用utf-8,直接显示
觉得根本不可能~~
编码问题完美解决方案还是统一到utf-8
本系统不变
ucenter数据库操作用gb2312,显示用utf-8
觉得悬~~Plan B:
本系统不变
ucenter数据库操作用gb2312,gb2312转utf-8(貌似见过这个函数),显示用utf-8
还是悬~~Plan C:
本系统不变
ucenter数据库操作用utf-8,直接显示
觉得根本不可能~~
编码问题完美解决方案还是统一到utf-8
废话1,最好是全部统一编码
废话2, 使用gb2312互相转换utf-8的函数
本系统是gb2312的页面和gb2312编码的mssql
——————————————这个不用变,可以下常显示ucenter是utf-8的
要看客户端,如果客户端是utf-8
则改ucenter的数据库连接,mysql_query("set names 'utf8'");二、整合系统
一个页内不能有两种编码
如果你改配置方便,可以这样将客户端统一为gb2312(如果配置好改的话),这样都能显示
但凡涉ucenter的数据库操作,加mysql_query("set names 'gb2312'");不用管数据库为何编码如果discuz设计合理的话,改一配置文件应可以了三、最好是编一编码
$s = $sep = '';
foreach($arg as $k => $v) {
if(is_array($v)) {
$s2 = $sep2 = '';
foreach($v as $k2=>$v2) {
$s2 .= "$sep2{$k}[$k2]=".urlencode(uc_stripslashes(mb_convert_encoding($v2,'UTF-8','gb2312')));
$sep2 = '&';
}
$s .= $sep.$s2;
} else {
$s .= "$sep$k=".urlencode(uc_stripslashes(mb_convert_encoding($v,'UTF-8','gb2312')));
}
$sep = '&';
}
$postdata = uc_api_requestdata($module, $action, $s);
return uc_fopen2(UC_API.'/index.php', 500000, $postdata, '', TRUE, UC_IP, 20);
}也就是加了mb转码
打完收工
用代码转换例如:
jsp中用
String smsort=request.getParameter("smsort");
try {
smsort=new String(smsort.getBytes("ISO-8859-1"),"UTF-8").toString().trim();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
看一下下面的代码,这个“比较合理”真的是有得“比较”?function uc_api_post($module, $action, $arg = array()) {
$s = $sep = '';
foreach($arg as $k => $v) {
if(is_array($v)) {
$s2 = $sep2 = '';
foreach($v as $k2=>$v2) {
$s2 .= "$sep2{$k}[$k2]=".urlencode(uc_stripslashes(mb_convert_encoding($v2,'UTF-8','gb2312')));
$sep2 = '&';
}
$s .= $sep.$s2;
} else {
$s .= "$sep$k=".urlencode(uc_stripslashes(mb_convert_encoding($v,'UTF-8','gb2312')));
}
$sep = '&';
}
$postdata = uc_api_requestdata($module, $action, $s);
return uc_fopen2(UC_API.'/index.php', 500000, $postdata, '', TRUE, UC_IP, 20);
}