我有一个正在开发的网站。我在我的帖子中尝试了以下格式,但它没有按原样显示。我在facebook / orkut中测试了它,它显示原样:
███─█─────█─███─███─███
█───█─────█─█───█────█
███─█──█──█─██──██───█
──█─█─█─█─█─█───█────█
███─██───██─███─███──█
███─███──███─███─██───█─███─
█───█─█───█──█───█─█──█─█──█
███─██────█──██──█──█─█─█──█
█───█─█───█──█───█───██─█──█
█───█──█─███─███─█────█─███─
但是在我的页面中,当从数据库(MYSQL)检索时,它看起来如下所示:
███─█─────█─███─███─███
█───█─────█─█───█────█
███─█──█──█─██──██───█
──█─█─█─█─█─█───█────█
███─██───██─███─███──█
███─███──███─███─██───█─███─
█───█─█───█──█───█─█──█─█──█
███─██────█──██──█──█─█─█──█
█───█─█───█──█───█───██─█──█
█───█──█─███─███─█────█─███─
如果我使用AJAX预览而不在数据库中存储,它看起来就像它一样。我在存储到数据库之前使用了以下PHP函数:
$content=$_POST['content'];
$content = str_replace("<br/>","\n",$content);//br2nl
$content=mysql_real_escape_string($content);
我应该做什么才能将文字格式化为Facebook或orkut等格式? 我还在将文本发送到服务器之前使用了URL编码:
var params = "content=" + encodeURIComponent(content);
答案 0 :(得分:0)
将charset元标记添加到html页面的标题部分,其中将显示特殊字符:
<html>
<head>
<meta charset="utf-8">
<title>...</title>
...
在echo之前对帖子进行编码:
<?php
echo utf8_encode($postBody);
如果以上情况不起作用,请尝试:
echo html_entity_decode($postBody, ENT_QUOTES, 'UTF-8');
这应该可以解决问题。
但是,如果您要存储db 中编码的字符,则建议设置数据库表charset(因此在保存之前对其进行编码,而不是在回显之后对其进行编码):< / p>
ALTER TABLE posts CHARACTER SET utf8 COLLATE utf8_general_ci;
如果要设置用于从数据库发送数据的默认字符集,请使用:
$mysqli->set_charset("utf8"); // Not available on Windows OS