簡體   English   中英

PHP的副本不能與UTF8字符?

[英]php copy not working with utf8 characters?

我正在使用php copy()函數,並且得到了奇怪的結果,這使我成為Google,無法找到與此主題相關的任何內容,因此我的結論是php的copy($ src,$ dest)函數不能在$ src和$ src中包含utf8字符。 $ dest,但只想讓您確認一下-也許您知道解決方法?

最終結論: @azat:非常感謝您的回答和幫助,但總的來說,我現在發現自己錯了! 這些文件(當下載到我的計算機上時確實具有正確的特征!!但是,當我從WinSCP中查看該文件夾的內容時,我發現它們都是由WinSCP引起的混亂。無論如何,我會將您的答案標記為正確:您是唯一可以幫助我的人,最終使我意識到了自己的錯誤。

編輯:我在上面運行的系統是Linux,php文件中命令的示例是這樣的:

<?php
    copy ("images/test.png", "images/myTestŽĆČĐŠžćčđš.png");
?>

編輯2:

#>uname -a
Linux litij.avalon.hr 2.6.18-274.3.1.el5 #1 SMP Tue Sep 6 20:13:52 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

#>cat /etc/mtab
/dev/root /lib virtfs defaults 0 0
/dev/root /opt virtfs defaults 0 0
/dev/root /lib64 virtfs defaults 0 0
/dev/root /usr/lib virtfs defaults 0 0
/dev/root /usr/lib64 virtfs defaults 0 0
/dev/root /usr/sbin virtfs defaults 0 0
/dev/root /usr/share virtfs defaults 0 0
/dev/root /usr/bin virtfs defaults 0 0
/dev/root /usr/man virtfs defaults 0 0
/dev/root /usr/X11R6 virtfs defaults 0 0
/dev/root /usr/kerberos virtfs defaults 0 0
/dev/root /usr/libexec virtfs defaults 0 0
/dev/root /usr/local/bin virtfs defaults 0 0
/dev/root /usr/local/share virtfs defaults 0 0
/dev/root /usr/local/Zend virtfs defaults 0 0
/dev/root /usr/local/IonCube virtfs defaults 0 0
/dev/root /usr/include virtfs defaults 0 0
/dev/root /usr/local/lib virtfs defaults 0 0
/dev/root /var/spool virtfs defaults 0 0
/dev/root /var/lib virtfs defaults 0 0
/dev/root /var/cpanel virtfs defaults 0 0
/dev/root /usr/local/cpanel/Cpanel virtfs defaults 0 0
/dev/root /var/run virtfs defaults 0 0
/dev/root /var/log virtfs defaults 0 0
/dev/root /tmp virtfs defaults 0 0
/dev/root /dev virtfs defaults 0 0
/dev/root /bin virtfs defaults 0 0
/dev/root /usr/local/apache/domlogs virtfs defaults 0 0
/dev/root /etc/mail virtfs defaults 0 0
/dev/root /home/fotoctim virtfs defaults 0 0
none /proc proc rw 0 0

值得注意的是,我的復制命令沒有給出任何錯誤:(

if (copy($src, $dest)){
    echo  "File <b>successfully</b> copied to $dest<br/>";
}
else{
    echo "File <b>was not!</b> copied to $dest<br/>";
}

分機4
LANG = zh_CN.UTF-8

<?
touch("/tmp/test.png");
copy("/tmp/test.png", "/tmp/myTestŽĆČĐŠžćčđš.png");
azat:~$ ls /tmp/myTestŽĆČĐŠžćčđš.png 
/tmp/myTestŽĆČĐŠžćčđš.png

所以問題是您擁有什么文件系統和安裝選項

我知道這已經晚了,但是您需要檢查包含以下復制腳本的php文件的格式是否為utf-8格式。 因此,當它復制文件時,會以相同的格式復制它。 這就是我解決問題的方式。

<?php

復制($ path,$ dest); ?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM