亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用PHP中的文件系統函數,使用UTF-8字符串?

如何使用PHP中的文件系統函數,使用UTF-8字符串?

PHP
慕碼人8056858 2019-08-03 10:03:45
如何使用PHP中的文件系統函數,使用UTF-8字符串?我不能用mkdir若要創建具有UTF-8字符的文件夾:<?php $dir_name = "Depósito";mkdir($dir_name);?>在Windows資源管理器中瀏覽此文件夾時,文件夾名如下所示:Dep?3sito我該怎么辦?我用的是php 5
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

在unix和linux下(也可能在OSX下),當前的文件系統編碼由LC_CTYPE區域設置參數(參見函數)setlocale())。例如,它可能評估如下en_US.UTF-8這意味著編碼是UTF-8。然后,可以用以下方法創建文件名及其路徑:fopen()或被dir()用這個編碼。

在Windows下,PHP作為“非Unicode感知程序”運行,然后文件名從文件系統使用的UTF-16(Windows 2000及更高版本)來回轉換到選定的“代碼頁”??丶姘濉皡^域和語言選項”、選項卡面板“格式”設置由LC_CTYPE選項,而“非Unicode程序的管理->語言”則設置文件名的翻譯代碼頁。在西方國家LC_CTYPE參數的計算結果如下language_country.1252其中1252是代碼頁,也稱為“Windows1252編碼”,與ISO-8859-1類似(但不完全相同)。在日本,932代碼頁通常被設置為其他國家,以此類推。在PHP下,您可以創建名稱可以用當前代碼頁表示的文件。反之亦然,從文件系統檢索的文件名和路徑將使用“最佳匹配”當前代碼頁.

這種映射是近似的,因此某些字符可能會以不可預知的方式損壞。例如,Caffé Brillì.txt將由dir()作為PHP字符串Caff\xE9 Brill\xEC.txt與預期一樣,如果當前代碼頁為1252,則返回近似Caffe Brilli.txt在日本系統中,因為重音元音在932代碼頁中丟失,然后被它們的“最佳匹配”非重音元音所取代。無法翻譯的字符被檢索為?(問號)。一般來說,在Windows下,沒有安全的方法來檢測這些工件。

更多詳情,請參閱我對PHPbug編號47096.




查看完整回答
反對 回復 2019-08-05
  • 3 回答
  • 0 關注
  • 325 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號