我有一个关于从内部mysql查询转换字符集的问题。在mysql查询中转换字符集
我有一个2数据库。一个用于网站(joomla),另一个用于论坛(IPB)。 我在做从内部joomla,其默认情况下有“SET NAMES UTF8”查询。 我想查询论坛数据库中的表。一个名为“ibf_topics”的表。该表具有latin1编码。
我按照以下步骤从not-utf8表中选择任何东西。
//convert connection to handle latin1.
$query = "SET NAMES latin1";
$db->setQuery($query);
$db->query();
$query = "select id, title from other_database.ibf_topics";
$db->setQuery($query);
$db->query();
//read result into an array.
//return connection to handle UTF8.
$query = "SET NAMES UTF8";
$db->setQuery($query);
$db->query();
之后,当我想用所选的瓷砖,我使用以下命令:
echo iconv("CP1256", "UTF-8", $topic['title'])
的问题是,反正是有避免这一切的麻烦? 现在,我不能论坛数据库更改为UTF8,我不能的Joomla数据库更改为LATIN1:S
对不起?我没有明白。 你能解释更多吗?这和我的代码有什么区别? – Yousf 2010-04-23 23:25:29
@Yosif它缩短了2倍 – 2010-04-23 23:40:13
我得到了你的答案,但这不起作用。我应该在从“other_database.ibf_topics”中选择之前将名称更改为latin1;如果连接使用UTF8,则此表包含已损坏的非英文字母。 – Yousf 2010-04-24 09:05:19