从 cp1255 到 UTF-8 的编码转换
Encoding conversions from cp1255 to UTF-8
我在旧数据库中有以下编码的希伯来语字符串:
éçìéó àú ùîåàì æåñîï äòåáã á÷áåöä îòì 50 ùðä
用于解码此字符串的 ASP 代码如下:
function Get_RightHebrew(ByVal sText)
Dim i
Dim sRightText
if isNull(sText) then
sRightText = ""
else
For i = 1 To Len(sText)
If (AscW(Mid(sText, i, 1)) >= 1488 And AscW(Mid(sText, i, 1)) <= 1514) Then
sRightText = sRightText & Chr(AscW(Mid(sText, i, 1)) - 1264)
else
sRightText = sRightText & Mid(sText, i, 1)
End If
Next
end if
Get_RightHebrew = sRightText
End Function
我正在寻找等效的 PHP 函数来将字符串转换为正确的 UTF-8
你有一个 CP1255
编码的字符串,但用 CP1252
(Latin1) 解码,所以你可以通过作弊取回你的希伯来语文本。
# mis-decoded string
$str = "éçìéó àú ùîåàì æåñîï äòåáã á÷áåöä îòì 50 ùðä";
# convert to CP1252 from UTF-8
$str = iconv("UTF-8", "CP1252", $str);
# convert to UTF-8 by claiming $str is encoded with CP1255
$str = iconv("CP1255", "UTF-8", $str);
echo $str;
这是我在网上做的测试:https://3v4l.org/7taaN
我想分享一个示例代码,它使用 mb_*
函数而不是 iconv
,但不支持 CP1255
。将字符集 ISO-8859-8
与 mb_*
结合使用是一种选择,但由于它是 CP1255
的子集,因此可能会丢失数据。
我在旧数据库中有以下编码的希伯来语字符串:
éçìéó àú ùîåàì æåñîï äòåáã á÷áåöä îòì 50 ùðä
用于解码此字符串的 ASP 代码如下:
function Get_RightHebrew(ByVal sText)
Dim i
Dim sRightText
if isNull(sText) then
sRightText = ""
else
For i = 1 To Len(sText)
If (AscW(Mid(sText, i, 1)) >= 1488 And AscW(Mid(sText, i, 1)) <= 1514) Then
sRightText = sRightText & Chr(AscW(Mid(sText, i, 1)) - 1264)
else
sRightText = sRightText & Mid(sText, i, 1)
End If
Next
end if
Get_RightHebrew = sRightText
End Function
我正在寻找等效的 PHP 函数来将字符串转换为正确的 UTF-8
你有一个 CP1255
编码的字符串,但用 CP1252
(Latin1) 解码,所以你可以通过作弊取回你的希伯来语文本。
# mis-decoded string
$str = "éçìéó àú ùîåàì æåñîï äòåáã á÷áåöä îòì 50 ùðä";
# convert to CP1252 from UTF-8
$str = iconv("UTF-8", "CP1252", $str);
# convert to UTF-8 by claiming $str is encoded with CP1255
$str = iconv("CP1255", "UTF-8", $str);
echo $str;
这是我在网上做的测试:https://3v4l.org/7taaN
我想分享一个示例代码,它使用 mb_*
函数而不是 iconv
,但不支持 CP1255
。将字符集 ISO-8859-8
与 mb_*
结合使用是一种选择,但由于它是 CP1255
的子集,因此可能会丢失数据。