Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.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
Php 为什么字符串“model_year”与字符串“model_year”不同_Php - Fatal编程技术网

Php 为什么字符串“model_year”与字符串“model_year”不同

Php 为什么字符串“model_year”与字符串“model_year”不同,php,Php,我在使用php脚本时遇到了问题,其中两个字符串彼此不相同。事情是这样的: echo $s1; // echoes model_year echo md5($s1); // echoes 7dd909a04b17a0f9ce4c3a975d70e275 echo $s2; // echoes model_year echo md5($s2); // echoes 0b42417a9f183a2321b39f1caecd56aa 为什么字符串模型年与字符串模型年不同?变量$s1硬编码到php文件中

我在使用php脚本时遇到了问题,其中两个字符串彼此不相同。事情是这样的:

echo $s1; // echoes model_year
echo md5($s1); // echoes 7dd909a04b17a0f9ce4c3a975d70e275
echo $s2; // echoes model_year
echo md5($s2); // echoes 0b42417a9f183a2321b39f1caecd56aa
为什么字符串模型年与字符串模型年不同?变量$s1硬编码到php文件中。变量$s2通过csv文件中的内容填充。我在这里也做了一个var_转储:

echo var_dump($s1); // echoes string(10) "model_year" 
echo var_dump($s2); // echoes string(13) "model_year"

在$s2末尾有一个尾随空格。用户微调功能,如:

$s1 = "model_year";
$s2 = "model_year ";
echo $s1; // echos model_year
echo md5($s1); // echos 7dd909a04b17a0f9ce4c3a975d70e275 
echo md5($s2); // echos 0b42417a9f183a2321b39f1caecd56aa
echo md5(trim($s2)); // echos 7dd909a04b17a0f9ce4c3a975d70e275 

可能是不同的编码?@johnthis->看看它们是否相同。看起来s1使用的是ASCII,s2使用的是UTF-8。这可能就是问题所在。@John试试这个:$s2=iconv'UTF-8','ASCII,$s2@Rizier123-好的,终于开始工作了。我按照你的建议做了,把s1转换成ASCII。但我还必须将我的CSV文件重新保存为UTF-8,而不使用BOM表。当CSV文件为带BOM的UTF-8时,$s1保留为UTF-8。我没有否决投票,但型号年份为FAD911FB1340FA35F9AE1565A213FD7FY您的答案是正确的,但型号年份没有md5到以0b424开头的字符串。。。。所以trim不仅仅是删除一个空格。@JeroenJK我想你错过了$s1,它没有应用trim,结果md5散列是7dd909a04b17a0f9ce4c3a975d70e275,这在应用trim到$s2之后是一样的。你在$s2末尾有一个尾随空格不,他没有!这是一个编码问题。@Rizier123我故意把它放在比较结果md5上。这就是为什么我回显了3个md5字符串。无论如何,有趣的是,正是编码问题将它转换成了精确的md5字符串。