编码问题导致在同一位置创建了 2 个同名文件夹
Encoding issues lead to 2 folders created with same name in the same location
我认为编码问题导致在同一位置创建相同的文件夹。
第一个文件夹是使用 php 后端直接从浏览器创建的。
第二个也是使用相同的 php 后端创建的,但是请求来自 IOS 应用程序。
逻辑很简单,我向服务器发送一个要创建的文件夹名称,如果该文件夹不存在则他创建它并在其中放入一个文件,否则他只是在现有文件夹中放入一个文件。
一个奇怪的发现是,如果我在 Windows 上使用 PostMan 发送请求,则会检测到现有文件夹并将文件毫无问题地放入其中,但是如果我在 Mac 上使用 Postman,我会得到同样的问题,文件夹未被检测为存在并重新创建。
这是我在 php 端检索文件夹名称的方法:
$name = $_POST["name"];
应用Normalizer::normalize
-- normalizer_normalize
:
<?php
$char__A_acute = "\xC3\x89"; // 'Latin Capital Letter E With Acute' (U+00C9)
$chars_A_acute = "\x45" // 'Latin Capital Letter E' (U+0045)
. "\xCC\x81"; // 'Combining Acute Accent' (U+0301)
var_dump( $char__A_acute );
var_dump( $chars_A_acute );
var_dump( $char__A_acute == $chars_A_acute );
var_dump( Normalizer::normalize( $char__A_acute, Normalizer::FORM_D )
== $chars_A_acute);
var_dump( $char__A_acute
== Normalizer::normalize( $chars_A_acute, Normalizer::FORM_C ));
?>
Output(事实上,你可以在一个简单的“终端”的第 2 行看到 string(3) "E´"
,例如 Windows 命令行 cmd
):
string(2) "É"
string(3) "É"
bool(false)
bool(true)
bool(true)
理论上:normalization forms for Unicode text
仅供参考,您在 EÌ�quipe Rouge
中看到一个 mojibake 案例,因为 Ì�
是 cp1252
对 Combining Acute Accent[ 的 utf-8 字节的解释=33=].
我认为编码问题导致在同一位置创建相同的文件夹。
第一个文件夹是使用 php 后端直接从浏览器创建的。 第二个也是使用相同的 php 后端创建的,但是请求来自 IOS 应用程序。
逻辑很简单,我向服务器发送一个要创建的文件夹名称,如果该文件夹不存在则他创建它并在其中放入一个文件,否则他只是在现有文件夹中放入一个文件。
一个奇怪的发现是,如果我在 Windows 上使用 PostMan 发送请求,则会检测到现有文件夹并将文件毫无问题地放入其中,但是如果我在 Mac 上使用 Postman,我会得到同样的问题,文件夹未被检测为存在并重新创建。
这是我在 php 端检索文件夹名称的方法:
$name = $_POST["name"];
应用Normalizer::normalize
-- normalizer_normalize
:
<?php
$char__A_acute = "\xC3\x89"; // 'Latin Capital Letter E With Acute' (U+00C9)
$chars_A_acute = "\x45" // 'Latin Capital Letter E' (U+0045)
. "\xCC\x81"; // 'Combining Acute Accent' (U+0301)
var_dump( $char__A_acute );
var_dump( $chars_A_acute );
var_dump( $char__A_acute == $chars_A_acute );
var_dump( Normalizer::normalize( $char__A_acute, Normalizer::FORM_D )
== $chars_A_acute);
var_dump( $char__A_acute
== Normalizer::normalize( $chars_A_acute, Normalizer::FORM_C ));
?>
Output(事实上,你可以在一个简单的“终端”的第 2 行看到 string(3) "E´"
,例如 Windows 命令行 cmd
):
string(2) "É"
string(3) "É"
bool(false)
bool(true)
bool(true)
理论上:normalization forms for Unicode text
仅供参考,您在 EÌ�quipe Rouge
中看到一个 mojibake 案例,因为 Ì�
是 cp1252
对 Combining Acute Accent[ 的 utf-8 字节的解释=33=].