这个字符是什么(Â)以及如何用PHP删除它?

时间:2011-08-25 07:27:07

标签: php string character-encoding

它是一个首都A,顶部有一个^:Â

它出现在从网页中提取的字符串中。它显示原始站点上原始字符串中以前存在空白的位置。这是存储在我的数据库中的实际字符。当我回显包含它的字符串时,它也会显示在我的网站上。

当我最初处理网页时,我意识到这是一个字符编码问题,但我现在在我的数据库中遇到了这些字符。我必须在显示时转换此字符,或在输出包含它的html之前在php中的其他位置转换。我无法重新处理原始文件。

我尝试过str_replace()和html_entity_decode(),但都没有做过。

我还应该尝试什么?

9 个答案:

答案 0 :(得分:19)

“拉丁语1”是你的问题。网页有大约65256个UTF-8字符,您无法存储在Latin-1代码页中。

对于您的直接问题,您应该能够

$clean = str_replace(chr(194)," ",$dirty)

但是我会将你的数据库切换为尽快使用utf-8,因为问题几乎肯定会再次发生。

答案 1 :(得分:7)

这对我有用:

$string = "Sentence ‘not-critical’ and \n sorting ‘not-critical’ or this \r and some ‘not-critical’ more. ' ! -.";
$output = preg_replace('/[^(\x20-\x7F)\x0A\x0D]*/','', $string);

答案 2 :(得分:6)

它实际上不是一个字符,可能是由于内容编码和浏览器编码之间的错位造成的。尝试将输出页面的编码设置为您正在使用的页面。

e.g。在该部分中,输出:

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

(将UTF-8调整为你正在使用的任何东西)

答案 3 :(得分:2)

我经常使用这个

function cleanStr($value){
    $value = str_replace('Â', '', $value);
    $value = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $value);
    return $value;
}

答案 4 :(得分:0)

使用Bellow码

echo "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>";
echo htmlspecialchars_decode($your_string, ENT_QUOTES);

答案 5 :(得分:0)

在网络中使用不同的字符集时会出现此问题。

要解决此问题(在示例中使用utf-8):

在您网页的<HEAD>中添加charset

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

您提交的任何形式都会添加accept-charset

<form name="..." method=".." id=".."  accept-charset="utf-8">

如果您使用php + MySQLi处理表单,则应确保数据库连接也支持您的字符集。程序风格:

mysqli_set_charset($link, "utf8");

和面向对象的风格:

$mysqli->set_charset("utf8")

答案 6 :(得分:0)

我实际上必须拥有所有这些:

    <--!DOCTYPE html--> 
    <--html lang="en-US"-->
    <--head-->
    <--meta charset="utf-8"-->   
    <--meta http-equiv="X-UA-Compatible" content="IE=edge"--> 
    <--meta name="viewport" content="width=device-width, initial-scale=1"--> 
    <--meta http-equiv="Content-Type" content="text/html; charset=utf-8/" /--> 

答案 7 :(得分:0)

要从字符串中删除â字符

mysqli_set_charset($ con,“ utf8”);

$ price =“â¹¹250.00”;

$ price2 = preg_replace('/ [^(\ x20- \ x7F)] * /','',$ price);

结果:250.00

答案 8 :(得分:0)

这来自数据库,因此最好的选择将使用SQL查询从数据库中删除,例如:

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

alert('Hello');

var getData = /*#__PURE__*/function () {
  var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
    var response;
    return regeneratorRuntime.wrap(function _callee$(_context) {
      while (1) {
        switch (_context.prev = _context.next) {
          case 0:
            _context.next = 2;
            return fetch('http://mywebsite/getData.php');

          case 2:
            response = _context.sent;
            _context.next = 5;
            return response.json();

          case 5:
            return _context.abrupt("return", _context.sent);

          case 6:
          case "end":
            return _context.stop();
        }
      }
    }, _callee);
  }));

  return function getData() {
    return _ref.apply(this, arguments);
  };
}();

getData().then(function (data) {
  alert(data['properties'][0]['title']);
  console.log(data['properties'][0]['title']);
});
alert('Goodbye');