2011-06-11 73 views
2

我想使用php上传文件。上传正在工作。 但我有一个文件,其中包含文件名称(不是内容)与不同的语言。 (例如japaneese字符)。 但我上传该文件到服务器后;显示不同字符的文件名称。 如何将相同的文件名称上传到服务器。使用PHP保存包含具有不同字符的文件名的文件

+0

通过什么字符串函数运行文件名? – alex 2011-06-11 03:41:16

+0

上传页面是什么字符集?操作系统/文件系统使用什么charset? – netcoder 2011-06-11 03:42:21

+5

绝对不要使用用户提供的文件名称来显示它,除了显示它以外,还要制作自己的文件名(您知道这是安全的)并存储文件的名称;然后将用户提供的文件名存储在数据库中的某处。 – 2011-06-11 03:54:02

回答

0

听起来像你有一个字符编码问题。您必须确保您的HTML表单和您的PHP配置使用相同的字符集。 UTF-8是首选,因为它包含几乎所有广泛使用的语言的字符。表单标签应包括以下这样一个属性:

<form accept-charset="UTF-8" ...> 

此外,检查您的php.ini文件指定默认的字符集:

default_charset = "UTF-8" 

如果你无法控制什么在你的php.ini,你可以尝试把它在你的.htaccess文件像这样(假设一个典型的Apache服务器。):

php_value default_charset UTF-8 

良好的措施,你可以ALS Ø添加的Content-Type元标记添加到HTML头部分指定UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

如果你在数据库中存储的任何文件名,你必须确保它也使用UTF- 8。

相关问题