raksmart活动促销

分享

写回答

发帖

中文文件名网页可以用unicode码正确显示!!!

国外虚拟主机 国外虚拟主机 3831 人阅读 | 5 人回复

发表于 2013-2-18 07:49:53 | 显示全部楼层 |阅读模式

中文文件名网页可以用unicode码正确显示!!!

Linux下如果能更改系统设置,中文文件名(或文件夹目录名)容易显示,否则不能直接显示,尤其在国外主机服务器上。

实际上主机将中文文件名网址改为unicode,要正确显示中文文件名网页,需要将中文文件名改为uncode编码。

中文文件名改为uncode编码可以用php函数iconv,例如以下php脚本:


<?php
echo '“于欣”的unicode码:[';
echo iconv('GBK', 'UTF-8', '于欣');
echo ']';
?>


以下两个中文名网页就是这样实现的:
yuxin.net/于欣
pubnic.com/于欣


我不喜欢看uncode码文件名,而且php程序读写也不用转换,所以我可能不用unicode码存储文件在另外文件夹目录,然后link过来:
ln -s ../dir2/于欣 浜庢

回答|共 5 个

Web3.0博士

发表于 2013-2-19 08:13:13 | 显示全部楼层

本帖最后由 Web3.0博士 于 2013-2-19 08:17 AM 编辑

cgi脚本 转换为unicode码的程序:我查到以下用法:
    use Encode qw/encode decode/;
    print encode("utf8", decode("gb2312", "于欣"));

下面是实际使用的例子,插入雷傲论坛程序dosavemodify.pl中,当用户名只含有 字母数字- 时存储目录取在网站根目录下,否则取在数据目录下 并且 符号link到网站根目录下unicode码目录:

$memberfiletitleu=$memberfiletitle;
$memberfiletitleu =~ tr/a-zA-Z0-9\-//d; # 用户名去掉 字母 数字 -
if($memberfiletitleu eq "") { # 如果去掉 字母 数字 - 后为空,则存储目录取在数据目录下
    $udir=$lbdir."../../".$host."/$memberfiletitle";
} else { # 否则取在数据目录data-dir下
    $udir=$lbdir."../../../date-dir/".$host."/$memberfiletitle";
    use Encode qw/encode decode/;
    $systlns="ln -s ".$udir." ".$lbdir."../../".$host."/";
    system($systlns.encode("utf8", decode("gb2312", $memberfiletitle))); # 符号link到网站根目录下unicode码目录
}

这些刚刚加在 pubnic.com , 欢迎测试,保证网址/二级域名 能稳定可靠使用:
用户名.yaotai.com www点yaotai.com/用户名 用户名.beihang.com www点beihang.com/用户名 用户名.qingzhu.com www点qingzhu.com/用户名
你申请的网址/二级域名能稳定持续永久使用(详细规则制定中...)。本博士(yuxin.net)拟在国旗下宣誓为人联网事业保驾护航,“人联网”起点是你的网址OpenID,相关文章请搜索“人联网3.0”: http://www.baidu.com/s?wd=%A1%B0%C8%CB%C1%AA%CD%F83.0%A1%B1&cl=3
回复 支持 反对

使用道具 举报

lsbvi

发表于 2013-2-22 12:15:08 | 显示全部楼层

本帖最后由 bbidc2012 于 2014-7-16 03:03 PM 编辑

顶你一下,好贴要顶!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则