Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 客户端或服务器正在删除UMLAUT_Javascript_Php_Jquery_Base64_Php 5.2 - Fatal编程技术网

Javascript 客户端或服务器正在删除UMLAUT

Javascript 客户端或服务器正在删除UMLAUT,javascript,php,jquery,base64,php-5.2,Javascript,Php,Jquery,Base64,Php 5.2,我正在使用btoa将我的字符串编码为base64。但是,它似乎无法正常工作,任何UMLAUT都会因任何原因被删除 我试图演示它,但在这一页上它是有效的: var content=“此文本包含UMLAUT(ÖÜÄ),它们将在我的网页上删除,但不会出于任何原因在本演示中删除”; 警报(内容); 内容=btoa(内容); 警报(内容); 内容=atob(内容); 警报(内容) let decoded=atob('PHA+VGHPYB0ZXH0IgnVBNRHAW5ZIHVTGF1DHMGMTC1IK

我正在使用
btoa
将我的字符串编码为base64。但是,它似乎无法正常工作,任何UMLAUT都会因任何原因被删除

我试图演示它,但在这一页上它是有效的:

var content=“此文本包含UMLAUT(ÖÜÄ),它们将在我的网页上删除,但不会出于任何原因在本演示中删除”;
警报(内容);
内容=btoa(内容);
警报(内容);
内容=atob(内容);
警报(内容)
let decoded=atob('PHA+VGHPYB0ZXH0IgnVBNRHAW5ZIHVTGF1DHMGMTC1IKUIEXLDHMGC2VLIGLMIHROZXKGYXJLIGDLDHRPBMCGCMVTB3ZLZC48L3A+'))
console.log(已解码)
let decoded=atob('PHA+VGHPYB0ZXH0IgnVBNRHAW5ZIHVTGF1DHMGMTC1IKUIEXLDHMGC2VLIGLMIHROZXKGYXJLIGDLDHRPBMCGCMVTB3ZLZC48L3A+'))

console.log(解码)
多亏@Matt Morgans的提示,我才解决了这个问题。我们发现客户端一切正常,我不得不更改服务器端代码

之前:

$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'OLD-ENCODING');
$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'Windows-1252');
之后:

$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'OLD-ENCODING');
$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'Windows-1252');
这也有效:

$content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');

多亏了@Matt Morgans的提示,我才解决了这个问题。我们发现客户端一切正常,我不得不更改服务器端代码

之前:

$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'OLD-ENCODING');
$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'Windows-1252');
之后:

$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'OLD-ENCODING');
$content = $_POST["content"];
$content = stripScript(base64_decode($content));
$content = mb_convert_encoding($content, 'UTF-8', 'Windows-1252');
这也有效:

$content = mb_convert_encoding($content, 'UTF-8', 'ISO-8859-1');

现在我可以解释了,网站是罪魁祸首。。。它没有正确解码,并删除了我所有的UMLAUT,我总是使用该网站来测试它,该网站真的让我困惑。我只是在使用top进行解码以测试它是否有差异后才注意到它。一个脚本之所以能够工作,是因为两者都运行不同的服务器代码。正如我在下面的回答中提到的,该站点能够进行解码。你只需要使用正确的编码设置。现在我可以解释,网站是罪魁祸首。。。它没有正确解码,并删除了我所有的UMLAUT,我总是使用该网站来测试它,该网站真的让我困惑。我只是在使用top进行解码以测试它是否有差异后才注意到它。一个脚本之所以能够工作,是因为两者都运行不同的服务器代码。正如我在下面的回答中提到的,该站点能够进行解码。你只需要使用正确的编码设置。那为什么它不能使用UTF-8呢?我总是在每个网站上使用
来启用umlauts。我很困惑,它应该与UTF-8一起工作。字符串是ISO-8859-1编码的。它不是UTF-8编码的。您可以通过使用Python对其进行解码来验证此示例:
base64.b64解码(已编码)。解码('ISO-8859-1')
给出
此文本包含umlauts(已编码)。让我们看看它们是否被删除。

,但是如果指定了
UTF-8
解码,则会出现解析错误。为什么它不能与UTF-8一起工作?我总是在每个网站上使用
来启用umlauts。我很困惑,它应该与UTF-8一起工作。字符串是ISO-8859-1编码的。它不是UTF-8编码的。您可以通过使用Python对其进行解码来验证此示例:
base64.b64解码(已编码)。解码('ISO-8859-1')
给出
此文本包含umlauts(已编码)。让我们看看它们是否被删除。

,但是如果指定了
UTF-8
解码,则会出现解析错误。