在utf中获取波斯语(波斯语链接)charachter

时间:2019-03-11 14:38:59

标签: php utf farsi

我是php的新手,我有一个脚本可以从一些波斯音乐网站上获取信息。

我无法从网站获取波斯语字符:

$this->fa_artist = $html->find('div.main-post', 0)->find('p', 0)->find('b', 1)->plaintext;
file_put_contents('fa_artist.txt', $this->fa_artist);

通过html链接将fasi艺术家名称保存在fa_artist中

名称是:امیرعلی

但是我看到这个顺序:

  

امیرعلی

在文件中

如何将其另存为波斯字符?

1 个答案:

答案 0 :(得分:0)

UTF-8(unicode)链接应使用rawurlencode进行编码,以标准兼容模式提供必要的字符序列...例如:

<?php
  echo '<a href="' . rawurlencode("امیر علی") . '">' . htmlentities("امیر علی", ENT_QUOTES, "UTF-8") . '</a>';
?>

如果您看到来源,则可以看到:

<a href="%D8%A7%D9%85%DB%8C%D8%B1%20%D8%B9%D9%84%DB%8C">امیر علی</a>

rawurlencode必须用于UTF-8链接 (http://php.net/manual/en/function.rawurlencode.php

htmlentities必须用于UTF-8文本 (http://php.net/manual/en/function.htmlentities.php

必须使用以下方法将您的页面用作UTF-8:

ini_set('default_charset', 'UTF-8');

放在脚本的顶部,并且脚本可能必须以UTF-8进行内部编码而没有BOM(字节顺序标记)...

因此您可以在项目中直接使用UTF-8,而不会丢失任何内容...

我希望有帮助。