为什么上传文件的文件名变成乱码?

为什么上传文件的文件名变成乱码?,第1张

1 dedecms网站GBK与UTF

在帮别人修改织梦模板的时候,别人的要求是: 在现有的织梦做网站上 增加一个多语言界面,就是在现有的中文界面上新增 英文,日文 和韩文。

第一个当然想得就是在织梦后台新增几个这样的 栏目。然后只要将模板做成其他的语言就可以调用了。

但是也遇到了一个问题就是它现有网站的织梦是gbk的。

这种gbk是一种中文编码,若想出现其他语言文字就必须转化成UTF-8的,所以自己就再网上整理了一下 找到了一个比较不错也适合自己的转换方式:

1 备份网站的所有数据

这一部分是很重要的 ,尤其是数据库的备份。先织梦后台备份,然后再整站进行备份

2导出数据库文件并转换。

这一部分需要使用到PHPMyadmin 我们在MyAdmin 找到网站的数据库名,默认的数据表前缀为dede_ 全选这些数据表,选择导出。将导出的。sql文件在本地 用专门的编辑工具打开(可以使用DW或者是Notepad++等)

我们查找CHARSET=gbk 全部替换为CHARSET=utf8

查找gb2312全部替换成utf8

然后保存。

3模板文件的转换

用DW打开模板文件,选择修改——页面属性——标题/编码 :

织梦gbk转utf8

我们只要将编码选择为 UTF-8即可,下面还有一个选择就是 是否包含Unicode签名(BOM) 这个不要选择 否则在使用织梦模板插入include时会出错

若发现有的文字出现了乱码 自己手动更改即可!

将全部的模板文章转换问UTF-8格式的!

文件基本上就转换好了!

4安装UTF-8格式的织梦安装包

你使用的是织梦哪个版本的织梦就安装相应的UTF-8格式的安装包,安装好之后使用MyAdmin 将这个新数据库名中格的表删除,并将转换好的。ssql文件导入即可,将转换好的模板文件覆盖。

2 织梦系统怎么把utf编码转成gbk

首先登陆dedecms网站后台,使用系统菜单下的数据库备份/还原功能,将网站的数据备份,记住要备份数据表结构,然后使用FTP工具将备份好的数据文件下载到您的电脑上。

备份的文件中有tables_struct_xxx这样一个文件,用dreamweaver或EditPlus打开这个文件,使用查找与替换命令,将CHARSET=gbk替换为CHARSET=utf8,然后要保存。打开准备的转码软件,将第所备份的文件(包括上面修改过的文件),将GBK转换为UTF-8格式。当然,转换好的文件一定是在一个新的文件夹里面,以便区分原来的GBK的文件。

至此这一步,就将数据库文件由GBK格式成功的转换为了UTF-8格式。

3 DEDEcms,GBK和UTF8版本互相转换有什么方法

当前安装版本为:dedecms v57 utf8,目标将网站由UTf8版本转换为GBK版。

2写在转换之前:要转换dede系统的版本,实际上是编码的转换的问题,要将mysqls数据从utf8转换为gbk编码,将模板文件的编码也要转换为GBK模式。在本文中两个核心工具,帝国备份王和Editplus 编辑器。

用ebak2008工具的备份/恢复功能,巧妙dede数据库utf-8编码的无错转换为gbk编码格式。站点文件的转换就用Editplus 编辑器。

END二数据的备份1在转换之前,将dede做整站备份,备份内容包括mysql数据库,dede站点文件,如果网站容量非常大的话,可以登录空间管理后台将整个网站进行打包,然后下载。备份的目的就是了防止转换失败后还有退路。

登录dede后台,选择“系统 ”中 “数据库备份/还原 ”备份dede数据库。2备份完毕,请登录ftp下载到本地电脑保存。

Dede备份数据存储位置:/data/backupdataEND三数据库编码转换1解压缩ebak2008,将ebak2008文件夹上传到网站空间的根目录。用帝国备份王(ebak2008)反向操作,强制转换dedecms v57 utf8版本的mysql数据编码为gbk。

2打开帝国备份王(ebak2008)工具(地址为:原域名/ebak2008),登陆3在登陆后的帝国备份王界面,点击“备份数据”,4备份数据界面,选择要备份的数据库,请注意操作,别选错了。5非常重要!虚拟主机安装的dede系统是utf8版,在备份的时候不能选择 “utf8编码进行备份 ”。

在这里要反向操作(如果是utf8就选gbk,如果是gbk就选utf8)。备份时请特别注意:选择数据库编码为gbk,不能选择其它方式,否则在转换后会出现乱码。

数据存储目录命名为:date_gbk_20150618160956。一般用默认的就可以了。

点击,屏幕最下方的 开始备份 ,等待完成操作!END四将gbk格式的dede数据库备份恢复到系统登陆主机ftp后台,将原来的dedecms的目录dede,改为deded_utf8_bak上传DedeCMS-V57-GBK-SP1tar,到主机后台进行解压缩,将其中的uploads文件夹改为dede,移动到public_html/目录中,此操作可以节省大量上传的时间接着就可以重新安装dede系统了,安装过程不作演示在安装DedeCMS-V57-GBK-SP1版时,按默认安装即可。安装完毕后,进后台将插件之类的也重新安装好然后登录ebak2008数据库备份工具,选择“数据恢复”,恢复第二步骤中将utf8编码强制转换为gbk格式的数据库(date_gbk_20150618160956)。

帝国备份王(ebak2008)恢复数据仅需要50秒左右,速度相当的快。恢复数据后,请登录dede管理后台,重新生成一下网页。

检查首页无乱码,织梦网站管理系统(dedecms)utf8成功转换gbk。进入网站管理后台,检查数据库表,Mysql数据表无乱码:转换成功后的小错误,由于dede默认的utf8和gbk版本的差别,在转换成功后,“图文资讯”和“首页幻灯片”丢失,丢失的重新上传一下就OK!整个过程无报错,显示正常再次进入主机后台找到dede_utf8_bak目录下的uploads下的alimg目录(这个目录就是首页和上传的存放的位置),把这个目录加入到剪贴板,再进入dede目录下的uploads,复制剪贴板的文件到这里,这样就恢复正常了本站使用的是dede默认的模板,所以在转换的时候没有改动dede的模板文件,如果你的网站对DEDE的一些文件没有改动,直接按照我的方法就可以成功转换。

如果有改动的文件,请将你改动的文件转换为gbk编码。用Editplus 编辑器将站点文件中的utf8转换为gbk编码。

重点是dede模板文件编码的转换,细心的用Editplus 编辑器修改,完毕后,上传覆盖即可。

4 dedecms的UTF

我看了下他的模板,这个改动量就太大了。你要把模板里的这些文件依次打开,并将<meta ; charset=utf-8" />;改成<meta ; charset=gb2312" />;。而且他的plus里也要改。整理起来很麻烦。

乱码查看器

http://downloadpchomenet/utility/lan/chinese/5060html

国外网页乱码问题解决方案

1若是html文件(htm html):

在<head></head>中加上<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

2若是PHP/cgi文件(php php3 php4):

在每个PHP文件第一行加上<header("content-Type: text/html; charset=gb2312"; >

3若是asp文件(asp jsp):

下面言归正传,说说asp源文件在国外服务器上中文问题的解决办法:

1首先,把您的asp源文件放在 IIS 里进行全面测试,调用每一项功能,确认它完全能够使用,并正确显示中文,并打开 mdb 数据库文件查看中文显示是否正常。全部通过后,做好备份文件,即可执行第二步。

2如果,您根本不懂 asp 的话,最简单的方法是:

打开 所有 asp 文件,并在第一行插入 <%@ codepage="936" %>,

例外情况:

①,如果第一行是以 <%@ LANGUAGE="VBSCRIPT" %> 开头,

则把第一行改为:<%@ codepage="936" LANGUAGE="VBSCRIPT" %>

②,如果第一行是以 <html> 或 <SCRIPT LANGUAGE="javascript">开头,则不加入。

3第二步完成后,再用 IIS 对每一项功能进行测试,如显示 \0\connasp line 1, 即为错误信息,意思是: connasp 源文件第一行有错,那就把 <%@ codepage="936" %> 删除即可,一些例外错误,请到 http://searchmicrosoftcom/defaultasp ;这里,输入“错误信息”查询即可,全部功能测试可行后,即可上传至国外服务器上,进行测试。

4方法还是:调用每一项功能,全部能正确使用并能显示中文后,再“下传”mdb 文件(非常重要),打开,确认能正确显示中文,大功告成。

另外在外国服务器上用ACESS2000的中文显示方法不用转化数据库ACESS2000,只需在ASP第一行加入<%@ codepage=1256 %>

怎么解决外国空间中文显示出问题的问题

非程序生成的文字可以显示。但程序生成的文字就只有E文可以显示了。中文全是?号,这是数据库乱码引起的。

方法一:

使用 Microsoft Access 2000 打开数据库,选择工具菜单>数据库实用工具>转换数据库>到早期 Access 数据库版本。OK!

方法二:

后来订阅了微软的新闻组,在微软的新闻组dotnetframeworkaspplusgeneral中发现有讨论这

个问题的文章,方法为添加<%@ CODEPAGE = "936" %>到每一页的开头,有点类似于jsp中的

<%@ page contentType="text/html;charset=gb2312"%>

赶紧测试了一下,果然OK!!!

例子如下面所示:

<%@ CODEPAGE = "936" %>

<%@ Import Namespace="SystemData" %>

<%@ Import Namespace="SystemDataADO" %>

<%@ Import Namespace="SystemGlobalization" %>

<html>

<head>

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

</head>

方法三:

在翻阅了微软NGWS文档后发现在文档的常见问题部分有提到要添加一个configweb文件到

web目录下,试了一下,中文显示果然OK了。

方法如下:

建立一个文件configweb,内容如下,放在WEB目录下

<configuration>

<globalization

requestencoding="utf-8"

responseencoding="utf-8"

/>

</configuration>

对于正常的文件在上传后,文件名不会有变化。

对于链接文件,在上传后,系统上传的是链接的目的文件,所以文件名有变化。对于链接文件,如果是链接到本地的文件,则实际上传的是链接到的具体文件,文件名也是那个文件名;如果是链接到一个网页,则实际上传的就是那个网页,文件名则是网址了。

对于出现的所谓的乱码,其实就是那个网页的实际网址。所以建议不要上传链接文件。

当前安装版本为:dedecms v57 utf8,

目标将网站由UTf8版本转换为GBK版。

2

写在转换之前:

要转换dede系统的版本,实际上是编码的转换的问题,要将mysqls数据从utf8转换为gbk编码,将模板文件的编码也要转换为GBK模式。

在本文中两个核心工具,帝国备份王和Editplus 编辑器。

用ebak2008工具的备份/恢复功能,巧妙dede数据库utf-8编码的无错转换为gbk编码格式。

站点文件的转换就用Editplus 编辑器。

END

二数据的备份

1

在转换之前,将dede做整站备份,备份内容包括mysql数据库,dede站点文件,如果网站容量非常大的话,可以登录php空间管理后台将整个网站进行打包,然后下载。

备份的目的就是了防止转换失败后还有退路。

登录dede后台,选择“系统 ”中 “数据库备份/还原 ”备份dede数据库。

2

备份完毕,请登录ftp下载到本地电脑保存。

Dede备份数据存储位置:/data/backupdata

END

三数据库编码转换

1

解压缩ebak2008,将ebak2008文件夹上传到网站空间的根目录。

用帝国备份王(ebak2008)反向操作,强制转换dedecms v57 utf8版本的mysql数据编码为gbk。

2

打开帝国备份王(ebak2008)工具(地址为:原域名/ebak2008),登陆

3

在登陆后的帝国备份王界面,点击“备份数据”,

4

备份数据界面,选择要备份的数据库,请注意操作,别选错了。

5

非常重要!php虚拟主机安装的dede系统是utf8版,在备份的时候不能选择 “utf8编码进行备份 ”。在这里要反向操作(如果是utf8就选gbk,如果是gbk就选utf8)。

备份时请特别注意:选择数据库编码为gbk,不能选择其它方式,否则在转换后会出现乱码。

数据存储目录命名为:date_gbk_20150618160956。一般用默认的就可以了。

点击,屏幕最下方的 开始备份 ,等待完成操作!

END

四将gbk格式的dede数据库备份恢复到系统

登陆主机ftp后台,将原来的dedecms的目录dede,改为deded_utf8_bak

上传DedeCMS-V57-GBK-SP1tar,到主机后台进行解压缩,将其中的uploads文件夹改为dede,移动到public_html/目录中,此操作可以节省大量上传的时间

接着就可以重新安装dede系统了,安装过程不作演示

在安装DedeCMS-V57-GBK-SP1版时,按默认安装即可。安装完毕后,进后台将插件之类的也重新安装好

然后登录ebak2008数据库备份工具,选择“数据恢复”,恢复第二步骤中将utf8编码强制转换为gbk格式的数据库(date_gbk_20150618160956)。

帝国备份王(ebak2008)恢复数据仅需要50秒左右,速度相当的快。恢复数据后,请登录dede管理后台,重新生成一下网页。

检查首页无乱码,织梦网站管理系统(dedecms)utf8成功转换gbk。

进入网站管理后台,检查数据库表,Mysql数据表无乱码:

转换成功后的小错误,由于dede默认的utf8和gbk版本的差别,在转换成功后,“图文资讯”和“首页幻灯片”丢失,丢失的重新上传一下就OK!整个过程无报错,显示正常

再次进入主机后台找到dede_utf8_bak目录下的uploads下的alimg目录(这个目录就是首页和上传的存放的位置),把这个目录加入到剪贴板,

再进入dede目录下的uploads,复制剪贴板的文件到这里,这样就恢复正常了

本站使用的是dede默认的模板,所以在转换的时候没有改动dede的模板文件,如果你的网站对DEDE的一些文件没有改动,直接按照我的方法就可以成功转换。

如果有改动的文件,请将你改动的文件转换为gbk编码。

用Editplus 编辑器将站点文件中的utf8转换为gbk编码。

重点是dede模板文件编码的转换,细心的用Editplus 编辑器修改,完毕后,上传覆盖即可。

用的是fileupload上传,在windows下上传是正常的,把项目部署到linux上就成乱码了,编码什么的都是用的linux编码

servlet用的是直接存:itemwrite(new File(fileName));

然后调用方法复制一个编码为utf-8的文件

读item存入的文件内容

File file = new File(PATH);

String data = null;

StringBuffer sbContent = new StringBuffer();

if (fileexists()){

BufferedReader br = new BufferedReader(new InputStreamReader(

new FileInputStream(“文件路径”), SystemgetProperty("fileencoding")));

while ((data = brreadLine()) != null) {

sbContentappend(data);

sbContentappend("\r\n");

}

}

把读出的内容重新写入到utf-8的编码的txt文件中

FileOutputStream fos = null;

OutputStreamWriter osw = null;

try {

Systemoutprintln("------------------------"+sbContenttoString()+"----------------------------");

fos = new FileOutputStream("与上文文件路径一样");

osw = new OutputStreamWriter(fos, SystemgetProperty("fileencoding"));

oswwrite(sbContenttoString());

} catch (Exception e) {

eprintStackTrace();

}finally{

close();

}

在Linux里打印出来的sbContenttoString()都是乱码

肯定是编码问题咯。你上传的程序和服务器文档打开的编码不同。这些供应商客服都应该知道。 我有问题都是问他们。我服务器是在时代互联买的。

input标签中加入限制输入类型的控制:

限制只能输入文字:

oninput="value=valuereplace(/[^\u4e00-\u9fa5]/g,'')"

限制只能输入数字:

oninput="value=valuereplace(/[^\d]/g,'')"

限制输入内容字节长度小于20:

oninput="value=valuereplace(/[^a-zA-Z0-9]+$/,'');if(valuelength>20)value=valueslice(0,20)"

电脑文件乱码是很常见的问题。当我们尝试打开一个文件时,会看到一些奇怪的符号和字符,而无法正常查看文件内容。这个问题是由于编码不兼容引起的。在这篇文章中,我将讨论一些解决这个问题的方法。

方法一:更改编码格式

首先,尝试更改文件的编码格式可以解决部分乱码问题。许多文件编码格式,例如ANSI、UTF-8、UNICODE等,可能不兼容导致乱码。我们可以尝试将编码格式更改为其他的格式,方法如下:

1找到文件或文件夹并右键单击它。

2选择“属性”选项。

3在“属性”窗口中,选择“高级”选项,并更改编码格式为其他格式。

4点击“确定”按钮来保存更改。

方法二:使用专业工具

如果更改编码格式不起作用,那么你可以尝试使用专用工具来重新编码文本。以下是一些推荐的工具:

1Notepad++

Notepad++是一款免费的开源文本编辑器,支持多种编码格式。它的用户界面友好,易于使用。通过它,你可以打开文本文件并将其编码格式更改为其他格式。

2FileZilla

FileZilla是一款免费的FTP客户端软件,可以用于解决文件编码问题。它可以将文件从FTP服务器下载到本地计算机,并将其重新编码到其他格式。同时,FileZilla还包含一个内置的文件查看器,可以检查文件的编码格式。

3TextWrangler

TextWrangler是一款Mac上的文本编辑器,支持多种编码格式,并且可以自动检测和更改文件的编码格式。它还包括一些高级功能,如搜索和替换等。

方法三:使用在线转换器

如果你不想安装任何软件,那么你可以尝试使用在线转换器。以下是一些推荐的在线转换器:

1Convertio

Convertio是一款在线文件格式转换器,支持多种文件格式和编码格式。只需将文件上传到Convertio并选择要转换的编码格式,即可将文件转换为所需编码格式。

2CodeBeautify

CodeBeautify是一款免费的在线编码转换器,可以将ASCII文本文件转换为其他编码格式,如UTF-8、UTF-16、ISO-8859-1等。

总结:

电脑文件乱码是一个常见的问题,但是有很多解决方法。你可以尝试更改文件的编码格式、使用专用工具或使用在线转换器。不同的方法适用于不同的文件类型和编码格式。希望这些方法可以帮助你解决电脑文件乱码问题。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 为什么上传文件的文件名变成乱码?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情