2011-10-12 38 views
4

我正在面对Windows Safari浏览器的一个奇怪问题。仅在Safari浏览器中添加了非ascii字符输入

我有基于jQuery的HTML5拖放正下降上传表单。它适用于除Safari之外的所有浏览器,对于具有特定扩展名的文件,文件扩展名后的文件名使用非ascii字符填充。

例如,文件example.mov成为example.movçðÆê

同样的文件被破坏:他们似乎没有任何内容。

这是一个已知的问题与Safari浏览器和jQuery/HTML5?有什么办法可以过滤非ASCII字符吗?

+0

看到一些代码,你如何处理与服务器端的文件将是有帮助 –

+0

在服务器端,我有一个PHP脚本,它接收帖子值并将其存储在数据库中,但问题是用户已经看到了填充名称。 – Vasilis

+0

这个Safari在MAC或PC上?可能是导致问题的文件系统本身。你有没有尝试过与Safari不同的平台,看看它是否仍然导致问题? – dSquared

回答

2

我不知道,如果是,像佩卡,我不是100%对这里的情况,这是非常有用的,但如果它足够剥去从字符串“错误”的字符,那么你可以使用正则表达式。这人会删除不a-zA-Z0-9.任何字符。

filename.replace(/[^a-z0-9\.]+/gi, ""); 

这可能过于严格(例如要允许非英语样的文件名或只想要去除后延字符)。假设问题是MOV和PDF格式的扩展,你只希望从末端延伸如上删除字符,你可以使用

filename.replace(/(\.mov|\.pdf)[^a-z0-9\.]+$/i, "$1"); 
相关问题