我有这个编码的字符串:
%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()无法正常工作
谢谢!
答案 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,它看起来完全不同,但不太常见。