请教mysql储存中文问题
小弟无法在mysql4.1中储存中文,上网找了很久,很多前辈建议修改php和mysql的默认字符集。但小弟租用的是国外服务器,恐怕无法修改默认字符集。哪位大哥大姐知道解决办法,小弟遥谢了。 更改了默认字符就失去了支持多国语言的意义 :idea:
最好的解决方案是使用Unicode(兔兔尚在研究中,sirtoozee cms将使用UTF)
其次可以用charset,具体方法:
在网页模板中加入如下meta标签,其中charset后面的变量需要在PHP脚本中声明
<meta http-equiv="Content-Type" content="text/html; charset=<{$CHARSET}>" />
如果是简体中文就用gb2312
如果是繁体中文就是big5 多谢兔老大回复。
兔老大所说的使用
<meta http-equiv="Content-Type" content="text/html; charset=<{$CHARSET}>" />
的方法小弟试过了,但是浏览器无法自动显示中文,必须手动从view--->character encoding中选择简体中文。
所以小弟在代码开始处添加了一句
header("content-Type: text/html; charset=<{$CHARSET}>");
浏览器可以自动显示中文了,但mysql还是无法储存中文信息。
兔老大所说的Unicode,哪里有相关的信息可以查询呢?谢谢 你储存时的编码要和实用时候的编码一样。
apache 的编码设置会覆盖 html 的设置,建议使用 header() 输出头信息。 储存时的编码与使用时的编码都是gb2312,可是中文存不进mysql 你的签名很美 :oops:
如果你在编程:
你可以说说是在update、insert一组值到一个table么?
如果你是在应用某个PHP程序:
你可以说说使用的是哪个PHP程序么?
兔兔好对症下药 :mrgreen: 你的签名很美 :oops:
如果你在编程:
你可以说说是在update、insert一组值到一个table么?
如果你是在应用某个PHP程序:
你可以说说使用的是哪个PHP程序么?
兔兔好对症下药 :mrgreen:
那个签名是林秀晶,近来看了她的<对不起,我爱你>, 被这个小姑娘电得晕晕的,所以拿她作签名意淫一下 :lol:
小弟在用php和mysql写一个留言板,但是当用户用中文发言时,留言的内容不会被insert到table里,而是代之以空白,或者乱码。
遥谢兔老大,您给看看有没有什么办法。 兔兔使用的是PEAR的DB类实现的对MySQL的操作,DB可以实现对大量数据库的兼容
这是兔兔在写注册时用到的
$table_fields = array('username','user_password','email','name','gender','native_place','education_level','political_level','education_background','seeking_career','contact_way','reg_date');
$table_values = array($username,$password,$email,$name,$gender,$native_place,$education_level,$political_level,$education_background,$seeking_career,$contact_way,$reg_date);
$table_name = 'user';
$sth = $db->autoPrepare($table_name, $table_fields, DB_AUTOQUERY_INSERT);
$db->execute($sth, $table_values);
建议你先去http://pear.php.net看看DB的使用 :roll: 出现乱码不要怕
drupal使用unicode,默认的语言是英语,插入MySQL的数据即使是论码也能正常显示成简体中文
应该在数据库操作和字符编码上多下些功夫 :idea: 小弟这里也遇到这样的问题还有:
在论坛提交如下的内容到mysql,但是再重其中读出来,尽显示出执行下面的代码后的结果,不知道该怎么办?正常的文字输入没问题,就是有了特殊的符号就象下面的就不行了。
<form action = "page.php" method = "post">
<input type= "text" name="like">
<input type="submit" value="send">
</form>
//我读数据的代码:
$post_text = nl2br(stripslashes($posts_info['post_text']));
//显示内容的代码:
<td width=65% valign=top>$post_text<br><br>
新手学习中希望大家能帮帮忙!!谢谢了先。 nl2br --Inserts HTML line breaks before all newlines in a string
stripslashes -- Returns a string with backslashes stripped off. (\' becomes ' and so on.) Double backslashes (\\) are made into a single backslash (\).
$posts_info['post_text'] is a array, isn't it?
这样吧,你应该参考phpBB2对特殊符号的处理方法:
2.0.11版本的phpBB2已经把处理特殊符号写成自定义的function——phpbb_clean_username
function phpbb_clean_username($username)
{
$username = htmlspecialchars(rtrim(trim($username), "\\"));
$username = substr(str_replace("\\'", "'", $username), 0, 25);
$username = str_replace("'", "\\'", $username);
return $username;
} $posts_info['post_text'] is a array, isn't it?
是的!
我试着将其加入了但是处理后的结果是显示了
<form action = "p
就没有了是不是要在输出是做一些改变
谢谢楼上的兄弟了! not at all :mrgreen: 听说如下解决乱码方法不止到公社的老大该如何具体的做:mysql-3.X的?
php向数据库写入时先用iconv转码,从数据库读出的内容用php显示时,设置charset为utf-8
页:
[1]
2