识别编码类型

时间:2015-07-17 22:06:51

标签: php decode encode

我有这个编码的字符串:

%E1%F0%E9+%E1%F8%F7%2C+%E2%E1%F2%FA%E9%E9%ED%2C+%E7%E5%E5%FA+%F9%EC%ED%2C+%F8%EE%FA+%E2%EF%2C+%FA%EC+%E0%E1%E9%E1+%E9%F4%E5+%28%E0%E6%F2%F7%E4+%E7%EC%F7%E9%FA%29%2C+%E6%E9%F7%E9%ED%2C+%EB%F8%EE%E9%E4

我想使用php(可能是mb_convert_encoding)将此字符串转换为好看。

字符串应为:

בני ברק, גבעתיים, חוות שלם, רמת גן, תל אביב יפו (אזעקה חלקית), זיקים, כרמיה

问题在于我不知道它是什么编码。

我通过POST方法收到这些数据,看起来它是URL编码的,但是urldecode()无法正常工作

谢谢!

1 个答案:

答案 0 :(得分:1)

  

看起来像url编码的Hrmm并且比较输入和预期输出它是单字节编码,并且它绝对不是ASCII,

     

*谷歌“希伯来语编码”*

     

啊,Windows-1255

<?php
header('Content-Type: text/html; charset=Windows-1255');
$str = '%E1%F0%E9+%E1%F8%F7%2C+%E2%E1%F2%FA%E9%E9%ED%2C+%E7%E5%E5%FA+%F9%EC%ED%2C+%F8%EE%FA+%E2%EF%2C+%FA%EC+%E0%E1%E9%E1+%E9%F4%E5+%28%E0%E6%F2%F7%E4+%E7%EC%F7%E9%FA%29%2C+%E6%E9%F7%E9%ED%2C+%EB%F8%EE%E9%E4';
echo urldecode($str);

输出:

  

בניברק,גבעתיים,חוותשלם,רמתגן,תלאביביפו(אזעקהחלקית),זיקים,כרמיה

编辑:

mb_convert_encoding()对我不起作用,但iconv()似乎已经完成了这个伎俩:

<?php
header('Content-Type: text/html; charset=UTF-8');
$str = '%E1%F0%E9+%E1%F8%F7%2C+%E2%E1%F2%FA%E9%E9%ED%2C+%E7%E5%E5%FA+%F9%EC%ED%2C+%F8%EE%FA+%E2%EF%2C+%FA%EC+%E0%E1
%E9%E1+%E9%F4%E5+%28%E0%E6%F2%F7%E4+%E7%EC%F7%E9%FA%29%2C+%E6%E9%F7%E9%ED%2C+%EB%F8%EE%E9%E4';
$dec = iconv('Windows-1255', 'UTF-8', urldecode($str));
?><html>
<body>
<p><?= $dec ?></p>
<p>The quick brown fox jumped over the lazy dog</p>
</html>

输出:

  

בניברק,גבעתיים,חוותשלם,רמתגן,תלאביביפו(אזעקהחלקית),זיקים,   כרמיה

     

快速的棕色狐狸跳过懒狗

现在你只需要确保页面上的所有是UTF-8,但至少几乎所有东西都应该“相处得很好”。或多或少。大多数时候......

有趣的事实:你可能遇到的另一个8位希伯来语编码是ISO/IEC 8859-8,它看起来完全不同,但不太常见。