【问题标题】:The Apostrophe (') converts to �撇号 (') 转换为 �
【发布时间】:2015-05-15 14:32:33
【问题描述】:

我在我的数据库中使用数据类型“文本”来存储几行内容。但是,当显示在我的网站上时,任何使用撇号 (') 的词,例如 Malaysia's converts to Malaysia ??我该如何解决这个问题?

【问题讨论】:

  • 你必须转义字符串。您使用的是什么脚本语言?
  • 中间件可以做转义字符串,你用的是php吗?
  • 您的数据库中的编码是什么?拉丁? utf8?你如何将数据放入数据库中?你的连接是utf8吗?你的脚本是 utf8 的吗?
  • 您需要在 HTML 文档中指定字符编码。
  • 我正在使用 latin1_swedish_ci

标签: php html mysql sql


【解决方案1】:

你可以用这个:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

因为这是一个编码问题。

正如您评论说您正在使用 PHP,那么这也应该有效:

<?php
  echo mb_convert_encoding(file_get_contents('Malaysia's'),
    "HTML-ENTITIES",
    "UTF-8"
  );
?>

【讨论】:

  • 嗨,我的编码中已经有了 charset=UTF-8。如果我使用你提供的 php 脚本,我应该为所有带有撇号的单词创建它吗?
  • @zaha:- 您可以将其存储在一个字符串中并将该字符串传递到 file_get_contents() 中,如果您从任何站点/url/文件获取它,则传递该文件的 url/路径在 file_get_contents() 方法中。
【解决方案2】:

如果你使用像“你的字符串”这样的单引号,则对字符串使用双引号。这可能会有所帮助

【讨论】:

    【解决方案3】:

    您需要使用mysql_escape_string

    例子:

    <?php
    $item = "Zak's Laptop";
    $escaped_item = mysql_escape_string($item);
    printf("Escaped string: %s\n", $escaped_item);
    ?>
    

    【讨论】:

    • 我需要为所有使用撇号的单词创建 $item?
    猜你喜欢
    • 2014-08-19
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多