PHP希腊网址转换

时间:2017-03-31 13:15:08

标签: php url character-encoding

我的网址如下:domain.tld /Σχετικά_με_μας

[编辑] 阅读$ _SERVER ['REQUEST_URI']我开始使用:

%CE%A3%CF%87%CE%B5%CF%84%CE%B9%CE%BA%CE%AC_%CE%BC%CE%B5_%CE%BC%CE%B1%CF%82

[/编辑]

在PHP中我需要将其转换为HTML,我相当远:

htmlentities(urldecode($navstring), ENT_QUOTES, 'UTF-8');

结果是:

Σχετικά_με_μας

但'ά'变为'Î'但我需要将它转换为

ά

我非常感谢帮助。我需要一个通用的解决方案,而不是“字符串替换”

2 个答案:

答案 0 :(得分:0)

我一直在玩一下,以下工作。使用mb-convert-encoding而不是htmlentities。:

mb_convert_encoding(urldecode($navstring),'HTML-ENTITIES','UTF-8');
//string(90) "domain.tld/Σχετικά_με_μας"

请参阅mb-convert-encoding

答案 1 :(得分:0)

信息

所有现代网络浏览器都能理解UTF-8字符编码。 我的建议是:

  • 始终知道您正在使用的数据的字符编码。
  • 使用UTF-8存储您的数据。
  • 使用UTF-8输出数据

mbstring php扩展并不只是操纵Unicode字符串。它还在各种字符编码之间转换多字节字符串。 使用mb_detect_encoding()(ref)和mb_convert_encoding()(ref 2) 函数将Unicode字符串从一种字符编码转换为另一种字符编码。

PHP需要知道!

您还需要告诉PHP您正在使用UTF-8,告诉他默认值,您可以在 php.ini文件中执行此操作:

default_charset = "UTF-8";

除非您使用header()函数指定它,否则该默认值将添加到PHP返回的默认Content-Type标头中:

header('Content-Type: application/json;charset=utf-8');

请记住

默认字符集由PHP中的许多函数使用,例如:

  • ヶ辆()
  • 用htmlspecialchars()
  • 所有mbstring函数
  • ...