这种编码将来会成为一个问题吗?

时间:2010-06-03 13:15:24

标签: php mysql html database security

我在php文件中有这个功能:

mysql_query("SET NAMES 'utf8'") or die(mysql_error()); 
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());

    some stuff happening here,

rename($src, $dest.$cat);

在服务器上,这是我今天的设置(至少在我的浏览器上)。

现在,在我的本地机器(我自己的带有wampserver的笔记本电脑)上,除非我这样做,否则它不会工作:

mysql_query("SET NAMES 'utf8'") or die(mysql_error()); 
mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error());

      some stuff happening here

$cat=utf8_decode($category);
rename($src, $dest.$cat);

我在这个php文件中也有meta=utf-8

$ cat从mysql_query获取其内容......

我想知道其中的差异(为什么它在服务器和本地计算机上的工作方式不同?)

我想知道这是否会导致不同用户浏览器出现问题,方法是

2 个答案:

答案 0 :(得分:0)

HTML标记 SQL查询不会影响文件系统操作。

这可能是一个文件系统问题。 Windows可能会重新编码您的文件名。

答案 1 :(得分:0)

Windows中的文件系统操作要求您在Windows正在使用的代码页中指定路径/​​文件名。

所以我猜您的代码页可能类似于cp1252,因此您必须使用utf8_decode。请注意,遗憾的是,您无法将Windows的代码页设置为UTF-8(65001)。

另一方面,在Linux上,您可以使用您希望的任何编码。但是,您必须保持一致 - 如果使用UTF-8文件名保存文件,则必须使用相同的字节序列读取它。