它是一个首都A,顶部有一个^:Â
它出现在从网页中提取的字符串中。它显示原始站点上原始字符串中以前存在空白的位置。这是存储在我的数据库中的实际字符。当我回显包含它的字符串时,它也会显示在我的网站上。
当我最初处理网页时,我意识到这是一个字符编码问题,但我现在在我的数据库中遇到了这些字符。我必须在显示时转换此字符,或在输出包含它的html之前在php中的其他位置转换。我无法重新处理原始文件。
我尝试过str_replace()和html_entity_decode(),但都没有做过。
我还应该尝试什么?
答案 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');