为什么上传文件的文件名变成乱码?
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等。
总结:
电脑文件乱码是一个常见的问题,但是有很多解决方法。你可以尝试更改文件的编码格式、使用专用工具或使用在线转换器。不同的方法适用于不同的文件类型和编码格式。希望这些方法可以帮助你解决电脑文件乱码问题。
0条评论