代码之家  ›  专栏  ›  技术社区  ›  Simon

PHP编码(猜测UTF-8)

  •  0
  • Simon  · 技术社区  · 15 年前

    我正在编写一个系统,这样用户可以编辑他发布的内容。简化了它是一个文本区域/输入字段,它存储在一个数据库和一个检索它的页面中。问题是,我认为编码不好,因为字符串像“”之类的存储在数据库中(phpmyadmin视图)。

    1. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    2. 我插入 mysql_real_escape_string($_POST['field']);

    1. 数据库中的对象。
    2. htmlspecialchars($object->field);

    但预期是: 输出页:

    1. 数据库中的对象。
    2. htmlentities($object->field); ,对吧?

    4 回复  |  直到 15 年前
        1
  •  4
  •   Sebastian Schmidt    15 年前

    如果数据库编码设置为utf-8,则还需要将transfer编码设置为utf-8。要做到这一点,您必须查询

    SET NAMES utf8;
    

    在插入表格之前。

        2
  •  2
  •   Victor Nicollet    15 年前

    连接 UTF-8型?记住,这不是默认编码,您必须自己显式地设置它。

        3
  •  1
  •   AndreKR    15 年前

    你必须告诉htmlentities你给它UTF-8:

    htmlentities($text, ENT_COMPAT, "UTF-8");
    

    否则它假设它得到ISO-8859-1。

        4
  •  0
  •   Scott    15 年前

    本网站 http://developer.loftdigital.com/blog/php-utf-8-cheatsheet

    哦,在连接到数据库后不要忘记使用这些:

    mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET 'utf8'");
    
    推荐文章