2011-02-17 6 views
1

HTML 페이지에서 POST 데이터를받은 다음받는 사람에게 데이터가있는 전자 메일을 보내는 다음 asp 코드가 있습니다. 모든 확장 문자는확장 된 문자를 ASP에서 인코딩하는 방법

Högberg 및 Pensevägen

그들은

로 끝날 예를 들어 같은 양식 필드 중 하나에

Hà ¶gberg 및 Pensevà ¤gen13A

어떻게 때를 제외하고 잘 작동 나는받은 전자 메일이 올바른 문자를 표시하도록 인코딩합니다. ASP 용 encodeURIComponent()가 있습니까?

<% 
Option Explicit 
Dim referer 
Dim siteurl 
Dim email_from 
Dim email_to 
Dim strMsg 
referer = Request.ServerVariables("HTTP_REFERER") 
siteurl = "www.example.com" 
email_from = "[email protected]" 
email_to = "[email protected]" 
strMsg = "Order ID : " & request.form("ordernumber") & "<br>" 
strMsg=strMsg+ "Order Date : " & request.form("orderdate") & "<br>" 
strMsg=strMsg+ "Ship Date : " & request.form("shipdate") & "<br>" 
strMsg=strMsg+ "Current Status : " & request.form("currentstatus") & "<br>" 
strMsg=strMsg+ "Current Selected Ship Method : " & request.form("currentselectedmethod") & "<br>" 
strMsg=strMsg+ "Shipping Method : " & request.form("shippingmethod") & "<br>" 
strMsg=strMsg+ "Tracking No : " & request.form("trackingnumber") & "<br>" 
strMsg=strMsg+ "Payment Method : " & request.form("paymentmethod") & "<br>" 
strMsg=strMsg+ "Customer ID : " & request.form("customerid") & "<br>" 
strMsg=strMsg+ "Ship Company Name : " & request.form("companyName") & "<br>" 
strMsg=strMsg+ "Ship Name : " & request.form("personName") & "<br>" 
strMsg=strMsg+ "Ship Address1 : " & request.form("address1") & "<br>" 
strMsg=strMsg+ "Ship Address2 : " & request.form("address2") & "<br>" 
strMsg=strMsg+ "Ship City : " & request.form("city") & "<br>" 
strMsg=strMsg+ "Ship State : " & request.form("state") & "<br>" 
strMsg=strMsg+ "Ship Zip : " & request.form("zip") & "<br>" 
strMsg=strMsg+ "Ship Country : " & request.form("country") & "<br>" 
strMsg=strMsg+ "Ship Phone : " & request.form("phone") & "<br>" 
strMsg=strMsg+ "Customer Email Address : " & request.form("email_address") & "<br>" 
strMsg=strMsg+ "Total Received : " & request.form("totalreceived") & "<br>" 
strMsg=strMsg+ "Total Due : " & request.form("totaldue") & "<br>" 

if InStr(referer, siteurl) > 0 Then 

    Dim HTTPRequest 
    Set HTTPRequest = CreateObject("WinHTTP.WinHTTPRequest.5.1") 
    HTTPRequest.Open "POST", "http://" & Request.ServerVariables("LOCAL_ADDR") & "/email.asp", False 
    HTTPRequest.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" 
    HTTPRequest.SetRequestHeader "Host", Request.ServerVariables("SERVER_NAME") 
    HTTPRequest.Send _ 
     "VsmtpKey=" & "1234-5678-8902451525-5525" &_ 
     "&Subject=" & Server.URLEncode("Order ") & Server.URLEncode(request.form("ordernumber")) & Server.URLEncode(" Shipped") &_ 
     "&FromEmailAddress=" & email_from &_ 
     "&ToEmailAddress=" & email_to &_ 
     "&Body_HTML=" & Server.URLEncode(strMsg) &_ 
response.write(strMsg) 
response.write(HTTPRequest.ResponseText) 

End If 
Set HTTPRequest = Nothing 
%> 

답변

0

시도해 보셨습니까?

Server.HTMLEncode(sWeirdValue)
+0

예, 작동하지 않습니다. – user357034

0

서버가 문자 집합을 구문 분석하는 방식을 변경하려고 시도 했습니까? 내가 사용하지 기억 :

Response.CharSet = "windows-1252"

또한이 설정되어 있지 않은 경우

Response.CodePage = 1252
이 페이지가 서버의 기본에 의해 인코딩 될 스크립트의 상단에 코드 페이지 속성을 사용하려고합니다.

utf-8 문자 집합에는 코드 페이지 65001이 사용되지만 ANSI 집합이 필요하다고 가정합니다.

관련 문제