识别编码类型

Recognize encoding type

我有这个编码字符串:

%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() 不工作

谢谢!

Hrmm that looks like url-encoding and comparing the input and expected output it's a single-byte encoding, and it's definietely not ASCII,

*google "hebrew encoding"*

Ahh, 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>

输出:

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

The quick brown fox jumped over the lazy dog

现在您只需要确保您页面上的所有内容 都是 UTF-8,但至少几乎所有内容都应该 "play nicely" 彼此相符。或多或少。大多数时候...

有趣的事实:您可能 运行 进入的另一种 8 位希伯来语编码是 ISO/IEC 8859-8,它看起来很不一样,但不太常见。