像fb / orkut这样的帖子中的格式化文本

时间:2013-11-26 13:35:12

标签: php mysql

我有一个正在开发的网站。我在我的帖子中尝试了以下格式,但它没有按原样显示。我在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);

1 个答案:

答案 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