曼波中国
曼波社区
曼波知识库
曼波搜索

查看完整版本: 請教老大!如何解決GB2312和UTF8的轉換?老模版不適應全球版??

schneew 2006-1-21 23:35

請教老大!如何解決GB2312和UTF8的轉換?老模版不適應全球版??

遇到一個非常頭痛的編碼問題,請教老大!
我原先安裝的是4.5.2.3中文黃金版,也就是GB2312編碼的。我現在需要轉換成UTF8。第一個選擇:是不是把數據庫轉成UTF8編碼就可以了呢?怎樣轉換數據庫為UTF8編碼呢?語言編碼和模版有關係嗎?
我的第二個選擇是升級到4.5.3h全球版 ------ 安裝時是GB2312的系統升級到全球版后,原來用GB2312編碼輸入的數據, 用UTF8是否可以顯示正常不會亂碼了呢?
最後一個選擇是捨棄原來的GB2312數據庫,重新安裝嶄新的全球版,重新生成新的數據庫。但是我還是遇到一個問題:儅我選用全球版自帶默認模版時,一切正常;但儅我在全球版中載入和選用silver_solafare模版時,語言顯示仍是GB2312而不是UTF8(雖然前臺語言已設定UTF8),害得我每翻一頁都得改ENCODING。而且,模版上部的模塊位置也發生了位移。是原來的模版不適應新全球版嗎?怎樣解決這兩個問題呢?
我已經冥思苦想多日了,還望老大早日解救!!!

lang3 2006-1-22 02:10

步骤:
1. 升级到 453h 全球版
2. 转换数据库中所有表的记录为 UTF-8 编码

模版问题请修改模版 index.php 文件,把

<meta http-equiv="Content-Type" content="text/html; <?php echo _ISO; ?>" />

移动到

<head>

的下面

schneew 2006-1-22 03:56

感谢老大这么快就不吝赐教!
可怜我这个刚开始自学连语言都是在猜的菜鸟还需要进一步指教:

1) 模版文件的开头没有找到你引用的那个需要挪到<head>的下方的语句呀?
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
// needed to seperate the ISO number from the language file constant _ISO
$iso = explode( '=', _ISO );
// xml prolog

// echo '<?xml version="1.0" encoding="'. $iso[1] .'"?' .'>';
echo '<?xml version=\"1.0\" encoding=\"utf-8\"?>';
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php mosShowHead(); ?>
<?php
if ( $my->id ) {
        initEditor();
}

2)数据库表的记录怎样才能转成UTF8呢?是在PHPMYADMIN里面吗?用哪个命令呢?是要一个一个地转,还是可以批量的呢?

schneew 2006-1-22 04:00

3) 如果数据库记录转UTF码成功,是不是也可以不升级原黄金版,而是在新装的全球版(我装在另一个子文件夹)里引用老的数据库?

schneew 2006-1-22 04:06

我在后面找到类似的语句

//right based combos
if ( mosCountModules( 'right' ) and ( empty( $_REQUEST['task'] ) || $_REQUEST['task'] != 'edit' ) ) {
        $right = 1;
}
?>
[b]<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />[/b]<link href="<?php echo $mosConfig_live_site;?>/templates/silves_solarflare/css/template_css.css" rel="stylesheet" type="text/css"/>
<style type="text/css">
<!--

是要把这一句挪到紧贴在<head>的后面吗? 是不是同时还要把iso8859-1改成utf8?或?

schneew 2006-1-22 04:43

模版语言问题已经解决了,哈哈!
现在剩下的问题就是:
1) 数据库表的记录怎样才能转成UTF8呢?是在PHPMYADMIN里面吗?用哪个命令呢?改Collation?是要一个一个地转(太多啦!),还是可以批量的呢?
2)如果数据库记录转UTF码成功,是不是也可以不升级原黄金版,而是在新装的全球版(我装在另一个子文件夹)里引用老的数据库?
3)老模版silves_solarflare语言问题解决了,但顶部菜单和模块仍有位移。这个是在INDEX.PHP里改还是改CSS?

schneew 2006-1-22 05:06

我估计是改INDEX.PHP? 位移的具体现象是:USER2 跑到顶部USER3的位置去了;USER3 跑到右上方TOP的位置去了。我不知道怎么改,因为在黄金版都还显示正常,到全球版就有位移了。

schneew 2006-1-22 05:40

位移搞定了!原来是全球版里的MODULES位置改动了。唉,还是边实践边瞎蒙学东西最快呀

lang3 2006-1-22 19:51

数据库表记录的编码转换:
1. 导出数据库,保存为 sql 文件
2. 用 editplus 编辑打开,然后另存,选择 UTF-8 编码

acdc 2006-2-12 14:16

接lang3,如果你用的是mysql4.1及以上版本,在导入时,会让你选择文件的字符集,这个地方要注意,如果你的数据库默认字符集时latin1,那么即使你的文件是utf8的,也要在导入时选择latin1,否则你的网站浏览时会是乱码。但是,又要注意的是,这样导入后,你用phpmyadmin2.7管理数据库时,中文全部是乱码(刚才说的是网页浏览),你还得修正下phpmyadmin的设置,详细请看这里[url]http://114tg.com/bbs/read.php?tid=99&fpage=1[/url]

[[i] 本帖最后由 acdc 于 2006-2-12 14:18 编辑 [/i]]

leo1 2006-2-12 16:58

[quote]原帖由 [i]lang3[/i] 于 2006-1-22 19:51 发表
数据库表记录的编码转换:
1. 导出数据库,保存为 sql 文件
2. 用 editplus 编辑打开,然后另存,选择 UTF-8 编码 [/quote]

今天在坛子泡了一天受益最大的一句话
啥也别说,谢了

beitian 2006-2-19 13:27

楼主老大,位移问题怎么解决的?拜托老大救命!!

ftsmth 2007-7-13 23:43

[quote]原帖由 [i]lang3[/i] 于 2006-1-22 19:51 发表 [url=http://www.mambochina.net/bbs/redirect.php?goto=findpost&pid=34299&ptid=8314][img]http://www.mambochina.net/bbs/images/common/back.gif[/img][/url]
数据库表记录的编码转换:
1. 导出数据库,保存为 sql 文件
2. 用 editplus 编辑打开,然后另存,选择 UTF-8 编码 [/quote]


我用的原空间是mysql4.0版,mambo4.5.2 gold版
新空间用的是mysql4.1,默认utf8编码 ,phpMyAdmin - 2.8.2,导入原有mysql数据库时(选择latin1方式),后台乱码,前台正常,而数据库中显示字符集整理方式为latin1_swedish_ci。。
即使是像您说的一样,用editplus将原4.0版导出的sql文件另存为utf-8之后,只有选择以latin1方式导入并且在ie中手动选择编码为utf8才可能显示正常(仍有部分菜单内容乱码),而后台仍有乱码。。

后来我把mambo升级到曼波整站系统5.1.0,发现就是多了个mamhoo,然后多了个前后台编码方式选择,可选有UTF8和 gb2312之分,对以上的问题根本没有解决,头都大了。。

mambo再没能编码问题搞好的话,估计就不得不转用supesite了。。
页: [1]
查看完整版本: 請教老大!如何解決GB2312和UTF8的轉換?老模版不適應全球版??