09/10/2018, 22:38

ASP upload file nhưng bị lỗi tiếng việt

Tôi sử dụng asp để tạo trang tin tức, nhưng mà khi tạo site admin tôi muốn upload cả tin tức và ảnh thì lại không được như ý. Ảnh upload lên thì được rồi, nhưng text thì không hiện ra tiếng việt. Tôi sử dụng mã nguồn download được về như sau2 file đính kèm)

Cách upload lên thì không có khó gì.

Đây là trang uploadNews.asp của tôi:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
username=Session("username")
if username="" then
Response.Redirect("access_denied.asp")
Response.End()
end if
%>

<!--#include file="clsUpload.asp" -->
<!--#include file="DBConnection.asp" -->
<%
Dim objUpload
Dim strFileName
Dim strPath
Set objUpload = New clsUpload
strFileName = objUpload.Fields("File").FileName
'Response.Write Server.MapPath("ImagesNews") & "" & strFileName
strPath = Server.MapPath("ImagesNews") & "" & strFileName
objUpload("File").SaveAs strPath
strSQL="INSERT INTO News(Title,Spec,Content,Source,NDate,Des,Img) VALUES(N'" & Replace(objUpload("Title").Value,"'","'") & "',N'" & Replace(objUpload("Spec").Value,"'","'") & "',N'" & Replace(objUpload("Content").Value,"'","'") & "',N'" & Replace(objUpload("Source").Value,"'","'") & "','" & Replace(objUpload("Ndate").Value,"'","'") & "',N'" & Replace(objUpload("Des").Value,"'","'") & "',N'ImagesNews" & strFileName & "')"
Response.BinaryWrite(strSQL)
conn.execute(strSQL)
conn.close()
'Response.Redirect("View_News.asp")
%>


Lỗi của tôi không phải do đặt codepage hoặc thẻ meta với charset = utf-8 (tôi đã thử). Tôi nghi ngờ rằng khi dùng class Upload, nó phải đọc hết request dưới dạng binary, rồi khi chuyển lại text thi mất mã unicode.
Ví dụ trường Title khi tôi add vào, ban đầu giá trị là:
"Bán hàng rong, quà vặt không được coi là thương nhân!"
Sau khi upload nó biến thành :
"BBBn hhhng rong, quuà vváºt khhÃng Ä‘Æ°á»c coi llà thhÆ°Æng nhhÃn!"

Không biết bạn nào đã từng gặp phải cái này, có thể giúp tôi đưọc không? Tôi rất mù mờ về Unicode.
Cảm ơn các bạn trước.
langxang viết 00:38 ngày 10/10/2018
Hình như thêm dòng này đầu trang:
<% codepage="65001"%>
Còn cơ sở dữ liệu thì fair config để có thể chứa unicode
Chúc thành công
C++ viết 00:38 ngày 10/10/2018
Chời ơi ! sư phụ

Đệ tử đang tìm cách để Uploda 1 file lên Server IIS mà không tìm ra, mong mấy sư phụ chỉ cho ạ

ví dụ có một máy Server và một máy Client trong net, muốn Upload file .rar lên Server chẳng hạn,

rất mong mấy sư phụ chỉ cho đệ tử ạ
vvn viết 00:47 ngày 10/10/2018
Tôi cũng gặp lỗi này, ko hiểu tại sao. Máy tôi chạy HĐH windows 2003 server. Khi mang sang 2000 server thì lại hiển thị tiếng việt tốt.

(trong DB trường được đặt là nvarchar, khi insert dữ liệu đặt thêm ký tự N)ví dụ

insert into tblName(Name) values(N'Vũ')
dinhbaochau viết 00:41 ngày 10/10/2018
Quote Được gửi bởi C++
Chời ơi ! sư phụ

Đệ tử đang tìm cách để Uploda 1 file lên Server IIS mà không tìm ra, mong mấy sư phụ chỉ cho ạ

ví dụ có một máy Server và một máy Client trong net, muốn Upload file .rar lên Server chẳng hạn,

rất mong mấy sư phụ chỉ cho đệ tử ạ
Ơ bác này ! Hình như tui thấy trong mấy cái forum miễn phí hoặc opensource có mấy file upload.asp ý mà, bác thử tải về sửa lại một chút là được mà.
Thử xem nhé, tui cũng có làm rồi, chạy không tồi đâu. Còn code thi nhiều lắm, mail tới tui tui cho, với lại cái code hình như tren manguon.com nó đang share đó, nhưng với điều kiện bác phải là thành viên có bài viết mới down được, thôi mail cho tui tui gởi cho.
chaudb@gmail.com
Nimbus viết 00:39 ngày 10/10/2018
Không biết bạn VietKoder và các bạn có tìm ra giải pháp cho vấn đề này chưa. Tôi cũng bị lỗi này..
Bài liên quan
0