javascript - 在 JavaScript 和 PHP 之间传递语言字符

标签 javascript php html utf-8 character-encoding

我正在尝试将特殊语言字符(如 ąėšų)从 JavaScript 字符串传递到 URL,并且我想使用 PHP GET 方法检索该字符串。

然而,我最终得到了不同的特殊语言字符,不知怎的,ė最终变成了Ä—

我尝试使用 encodeURIComponent() 在 JavaScript 中对字符串进行编码,然后使用 PHP 的 rawurldecode() 函数对其进行解码,但没有任何变化。

有人遇到过这个问题吗?

最佳答案

rawurldecode() 的 PHP 文档页面上,检查 note left by Javier 。他提到他遇到的一些字符没有正确解码。您可能遇到了类似的问题。

编辑:这里是链接中的代码,以防万一:

<?php
function urlRawDecode($raw_url_encoded)
{
    # Hex conversion table
    $hex_table = array(
        0 => 0x00,
        1 => 0x01,
        2 => 0x02,
        3 => 0x03,
        4 => 0x04,
        5 => 0x05,
        6 => 0x06,
        7 => 0x07,
        8 => 0x08,
        9 => 0x09,
        "A"=> 0x0a,
        "B"=> 0x0b,
        "C"=> 0x0c,
        "D"=> 0x0d,
        "E"=> 0x0e,
        "F"=> 0x0f
    );

    # Fixin' latin character problem
        if(preg_match_all("/\%C3\%([A-Z0-9]{2})/i", $raw_url_encoded,$res))
        {
            $res = array_unique($res = $res[1]);
            $arr_unicoded = array();
            foreach($res as $key => $value){
                $arr_unicoded[] = chr(
                        (0xc0 | ($hex_table[substr($value,0,1)]<<4)) 
                       | (0x03 & $hex_table[substr($value,1,1)])
                );
                $res[$key] = "%C3%" . $value;
            }

            $raw_url_encoded = str_replace(
                                    $res,
                                    $arr_unicoded,
                                    $raw_url_encoded
                        );
        }

        # Return decoded  raw url encoded data 
        return rawurldecode($raw_url_encoded);
}

print urlRawDecode("%C3%A1%C3%B1");

// output:
// áñ

?>

关于javascript - 在 JavaScript 和 PHP 之间传递语言字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30413391/

相关文章:

css - 使 HTML5 表格适合弹出窗口并移除水平滚动条

函数内的 JavaScript if 语句运行另一个函数

Meteor js 中的 Javascript 对象持久性

c# - RSA 加密中的 fOAEP 参数

html - CSS 三色调对 Angular 线背景

html - 放置图像垂直和水平对齐的 HTML

Javascript跨域URL请求

Javascript 数组等于零但本身不等于

php - 我的代码沙盒 Paypal future 付款有什么问题

php - 无法编辑数据库中的数据并且无法获取带有 ID 的名称?