当前位置:首页 » 文件管理 » asp上传文件乱码

asp上传文件乱码

发布时间: 2022-07-29 18:37:49

⑴ ASP 提交数据库时变成乱码怎么解决

提交的时候把数据的编码弄正确来!跟数据库里的编码一致,例如 UTF-8 把编码统一起来就可以了~!

⑵ 关于用asp无组件上传文件遇到的问题,求助!!!

asp上传文件以二进制方式存储在数据库中,应该是没有问题的,但问题是打开上传文件根据文件类型不同打开的方式是不一样的,txt文件可以用文本方式打开,但word文件必须使用word软件打开,不能使用文本方式打开。因此在存储时必须有文件的扩展名,根据扩展名不同使用不同的打开方式。

⑶ asp.net 上传文件时文件名称中文乱码问题

string path = @"C:/Documents and Settings/Administrator/桌面/新建 文本文档.txt"; //文件物理路径
int fcount = 0;
string contenttype = "";
string filename = "";

FileInfo fi = new FileInfo(path); //获取文件信息
fcount = (int)fi.Length;
contenttype = fi.Extension;
filename = fi.FullName.Substring(fi.FullName.LastIndexOf('//') + 1, fi.FullName.LastIndexOf('.') - fi.FullName.LastIndexOf('//') - 1);
FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);//读取文件
BinaryReader br = new BinaryReader(fs);
byte[] photo = br.ReadBytes(fcount);
br.Close();
fs.Close();

Session["test"] = photo; //将文件二进制保存到Session中

byte[] by = (byte[])Session["test"]; //获取session信息
filename = setting.ToHexString(filename);//为了防止中文的乱码,对其进行转码。
Response.AddHeader("Content-Disposition", "attachment; filename=" + filename + contenttype + "");//设置读取的文件头
Response.AddHeader("Content-Length", by.Length.ToString());
Response.ContentType = "application/octet-stream"; //设置输出类型 这里可以保存在数据库中 动态实现类型
Response.OutputStream.Write(by, 0, by.Length); //输出
Response.Flush();
Response.End();

//ToHexString方法防止乱码

/// <summary>
/// 为字符串中的非英文字符编码
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
public static string ToHexString(string s)
{
char[] chars = s.ToCharArray();
StringBuilder builder = new StringBuilder();
for (int index = 0; index < chars.Length; index++)
{
bool needToEncode = NeedToEncode(chars[index]);
if (needToEncode)
{
string encodedString = ToHexString(chars[index]);
builder.Append(encodedString);
}
else
{
builder.Append(chars[index]);
}
}

return builder.ToString();
}

/// <summary>
///指定 一个字符是否应该被编码
/// </summary>
/// <param name="chr"></param>
/// <returns></returns>
private static bool NeedToEncode(char chr)
{
string reservedChars = "$-_.+!*'(),@=&";

if (chr > 127)
return true;
if (char.IsLetterOrDigit(chr) || reservedChars.IndexOf(chr) >= 0)
return false;

return true;
}

/// <summary>
/// 为非英文字符串编码
/// </summary>
/// <param name="chr"></param>
/// <returns></returns>
private static string ToHexString(char chr)
{
UTF8Encoding utf8 = new UTF8Encoding();
byte[] encodedBytes = utf8.GetBytes(chr.ToString());
StringBuilder builder = new StringBuilder();
for (int index = 0; index < encodedBytes.Length; index++)
{
builder.AppendFormat("%{0}", Convert.ToString(encodedBytes[index], 16));
}
return builder.ToString();
}

⑷ asp图片上传时候,一点击上传按钮就显示乱码了,求救啊

应该是你的编码没设置对,要设置三个地方,以GB2312为例:
代码里面:
html部分:<meta
http-equiv="Content-Type"
content="text/html;
charset=gb2312"
/>
asp部分(写在最顶上):<%@LANGUAGE="VBSCRIPT"
CODEPAGE="936"%>
还有一个最重要的,经常被忽略,就是文件的编码
用记事本打开这个文件,然后选另存为...
在编码里面选择ANSI
,再保存一下。
然后关闭浏览器,重新打开这个文件。
以上三步,asp乱码的问题基本上都可以解决

⑸ ASP无组件上传后显示乱码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>这个去掉,再看一下你其它网页文件的编码是不是gb2312 ,还有就是如果你的文件原来是UTF-8的话,直接改成2312也会乱码,需要新建一个2312的页面,把代码复制进去

⑹ ASp from传值出现乱码

asp使用无组件上传,第一首先在确认提交的页面和接收文件的程序所用的编码相同,如同时使用gb2312或同时使用utf-8,提交文件的页使用meta使用gb2312时,接收页的头加入%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%;提交文件的页使用meta使用utf-8时,接收页的头就要加%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%,不然接收中文文件名时肯定会乱码(不加入这句就算你在你自己本机测试通过,但在其他服务器上不一定正常)! 第二,在接收文件页的上传类中查找Server.CreateObject ("ADODB.Stream") ,在它的下面所有XXXX.CharSet = "语言编码" 改为你的页面编码,如gb2312或utf-8等,这个在地方一般会出现两次,总之出现这样的语句替换就是了(其中XXXX是创建的对象名,各种上传组件的名称都不同)! 做好以上两点应该就可以正常接收中文文件名了!不行你再来找我!

热点内容
传智播客php韩顺平 发布:2024-05-17 20:09:52 浏览:819
android蓝牙打印打印图片 发布:2024-05-17 18:58:31 浏览:464
android年龄 发布:2024-05-17 18:51:33 浏览:198
termux安装python 发布:2024-05-17 18:44:55 浏览:655
手机流量上传 发布:2024-05-17 18:44:06 浏览:551
服务器怎么证明是好的 发布:2024-05-17 18:39:28 浏览:683
树莓派如何搭建mqtt服务器 发布:2024-05-17 18:27:38 浏览:437
门口机sip服务器ip是什么 发布:2024-05-17 17:38:27 浏览:554
光遇安卓区是什么服 发布:2024-05-17 17:22:25 浏览:25
linux驱动开发教程 发布:2024-05-17 17:19:52 浏览:501