我使用以下JavaScript代码,除了情感之外几乎可以使用所有内容。我一直收到以下错误。
未捕获URIError:URI格式错误
如果我将dr.Rows
的值从a_msg
更改为其他内容,则可行!请注意,在实践中我会从""
收集这些值,因此我无法控制输入的字符的编码,因为它通常依赖于(虚拟)键盘使用
textarea
我的PHP代码也很简单。
var a_name = "my name";
var a_msg = "";
$.post("myphp.php", { name: a_name, msg: a_msg });
网页使用UTF-8字符集。
$name = $_POST["name"];
$msg = $_POST["msg"];
到目前为止,我已尝试过(基于论坛上发布的类似问题),
<meta charset="UTF-8">
,encodeURIt()
和encodeURIComponent()``decodeURIComponent()
,decodeURI()
有效
PHP中的escape()
和utf8_encode()
。但没有运气或任何其他。
我做错了什么?我怎样才能解决这个问题?提前谢谢。
答案 0 :(得分:0)
它可以帮助你。我试着重现这个问题。这是我的解决方案:
的index.html:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Titel der Seite</title>
<script src="jquery-3.1.0.min.js"></script>
</head>
<body>
<script>
var a_name = "my name";
var a_msg = "";
$.post("myphp.php", { name: a_name, msg: a_msg});
</script>
</body>
</html>
myphp.php:
<?php
$name = $_POST["name"];
$msg = iconv('UTF-8', 'UTF-8', $_POST["msg"]);
echo $msg;
?>
默认情况下,我的文件采用UTF-8编码(编码时的Notepad ++ - &gt; UTF-8编码)。