这就是我现在所拥有的
将RSS源绘制到php中,来自rss源的原始xml读取:
Paul’s Confidence
我到目前为止的PHP就是这个。
$newtitle = $item->title;
$newtitle = utf8_decode($newtitle);
以上回报;
Paul?s Confidence
如果我删除utf_decode,我会得到这个
Paul’s Confidence
当我尝试str_replace时;
$newtitle = str_replace("”", "", $newtitle);
它不起作用,我明白了;
Paul’s Confidence
有什么想法吗?
答案 0 :(得分:19)
无论编码如何,这都是我的功能:
function RemoveBS($Str) {
$StrArr = str_split($Str); $NewStr = '';
foreach ($StrArr as $Char) {
$CharNo = ord($Char);
if ($CharNo == 163) { $NewStr .= $Char; continue; } // keep £
if ($CharNo > 31 && $CharNo < 127) {
$NewStr .= $Char;
}
}
return $NewStr;
}
工作原理:
echo RemoveBS('Hello õhowå åare youÆ?'); // Hello how are you?
答案 1 :(得分:17)
试试这个:
$newtitle = html_entity_decode($newtitle, ENT_QUOTES, "UTF-8")
如果这不是解决方案,请浏览此页面http://us2.php.net/manual/en/function.html-entity-decode.php
答案 2 :(得分:10)
这将从字符串中删除所有非ascii字符/特殊字符。
//Remove from a single line string
$output = "Likening ‘not-critical’ with";
$output = preg_replace('/[^(\x20-\x7F)]*/','', $output);
echo $output;
//Remove from a multi-line string
$output = "Likening ‘not-critical’ with \n Likening ‘not-critical’ with \r Likening ‘not-critical’ with. ' ! -.";
$output = preg_replace('/[^(\x20-\x7F)\x0A\x0D]*/','', $output);
echo $output;
&#13;
答案 3 :(得分:9)
我解决了这个问题。似乎是一个简短的修复而不是更大的问题,但它确实有效。
$newtitle = str_replace('’', "'", $newtitle);
我还发现这个有用的snippit可以帮助其他人解决同样的问题;
<?
$find[] = '“'; // left side double smart quote
$find[] = 'â€'; // right side double smart quote
$find[] = '‘'; // left side single smart quote
$find[] = '’'; // right side single smart quote
$find[] = '…'; // elipsis
$find[] = '—'; // em dash
$find[] = '–'; // en dash
$replace[] = '"';
$replace[] = '"';
$replace[] = "'";
$replace[] = "'";
$replace[] = "...";
$replace[] = "-";
$replace[] = "-";
$text = str_replace($find, $replace, $text);
?>
感谢大家的时间和考虑。
答案 4 :(得分:7)
是的,这对我不起作用。这是什么解决方法? - vaichidrewar 3月12日22:29
将其添加到HTML头部(或者如果已经存在则修改):
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
这会将有趣的字符编码为“â”,将其编码为UTF-8,以便str_replace()
函数能够正确解释它们。
或者你可以这样做:
ini_set('default_charset', 'utf-8');
答案 5 :(得分:2)
PHP服务器的字符编码设置是否为UTF-8以外的设置?如果是这样,是否有理由或者可以改为UTF-8?虽然我们没有在我们的数据库中以UTF-8存储数据,但我发现将web服务器的字符集设置为UTF-8似乎有助于解决字符集问题。
我有兴趣听听别人对此的看法......我是否通过将webserver设置为UTF-8,同时将提交的数据存储在我们的mysql数据库中的Latin1中来解决问题。我知道我选择Latin1作为数据库是有原因的,但不记得它是什么。有趣的是,我们当前的设置似乎允许非UTF-8字符输入和后续渲染...似乎在Latin1中存储不会阻止后续解码和显示所有UTF-8字符?
答案 6 :(得分:2)
使用以下PHP代码删除
html_entity_decode(mb_convert_encoding(stripslashes($name), "HTML-ENTITIES", 'UTF-8'))
答案 7 :(得分:1)
阅读http://us.php.net/manual/en/function.html-entity-decode.php
那&amp;符号是一个HTML代码,因此您可以轻松解码它。
答案 8 :(得分:0)
它不起作用 你需要使用 $ arr1 = str_split($ str) 然后foreach和 回波($ ARR1 [$ K]) 这将显示您确切地将哪些字符写入字符串。
答案 9 :(得分:0)
超级简单的解决方案是在加载页面时解码字符
只需在脚本开头复制/粘贴以下内容
即可 header('Content-Type: text/html; charset=UTF-8');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_regex_encoding('UTF-8');
参考:http://php.net/manual/en/function.mb-internal-encoding.php webfav在web dot de留下的评论
答案 10 :(得分:0)
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
Location mLocal = ((MainActivity)getActivity).getMLocal(); //you can get your Location object and you can use it further
//LatLng origin = new LatLng(14.507328, 121.000905);
mMap.addMarker(new MarkerOptions()
.position(new LatLng(14.507577, 121.004456))
.anchor(0.5f, 0.5f)
.title("title")
.snippet("snippet")
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_CYAN)));
答案 11 :(得分:0)
通过应用许多奇怪的字符被删除
mysqli_set_charset($con,"utf8");
mysql连接代码下方。
但是在某些情况下,会删除这种奇怪的字符,例如â€
我们需要使用:$title = ' Stefen Suraj'; $newtitle = preg_replace('/[^(\x20-\x7F)]*/','', $title); echo $newtitle;
输出将为:Stefen Suraj
答案 12 :(得分:0)
1。$ find数组中字符串的顺序很重要。 2.此字符串“—应包含一个代字号,看起来像三个字符。如果使用Genie编辑器保存.php文件,则其gits更改为仅两个字符“—。 3.这是一个有用的参考文献https://www.i18nqa.com/debug/utf8-debug.html
<?php
$text = "‘’“â€1‘ 2’ 3â€â€œâ€™â€˜ 4’ 5 6 7’ ‘, ’, “, â€â€˜";
echo($text . "<br>");
$find = array("‘", "’", "“", "â€");
$replace = array("‘", "’", "“", "”");
$text = str_replace($find, $replace, $text);
echo($text);
?>
答案 13 :(得分:-1)
只需一个简单的解决方案。
如果你的字符串包含这些类型的奇怪字符
假设$text
包含其中一些,那么就像下面所示:
$mytext=mb_convert_encoding($text, "HTML-ENTITIES", 'UTF-8')
它会起作用..