Multipart/form-data et de l'UTF-8 en ASP Classique de l'application

J'ai un problème que je ne comprends vraiment pas.
Je suis en train de télécharger un des fichiers en asp classique application, sans l'utilisation d'un composant externe. Je tiens également à poster du texte qui sera stockée dans une base de données.
L'upload de fichier parfaitement, je suis en utilisant ce code: Télécharger des Fichiers Sans COM v3 par Lewis E. que moten III

Le problème, c'est l'autre forme de champs d'entrée. Je suis en UTF-8, mais ils ne finissent pas comme UTF-8. I. e caractères suédois å, ä et ö est affiché sous forme d'interrogation si je les imprimer à l'aide de la Réponse.Écrire.

J'ai enregistré les fichiers en UTF-8 (avec BOM), j'ai ajouté la balise meta pour dire que la page est en UTF-8. J'ai mis la Réponse.CharSet = "UTF-8".

La fonction de convertir de binaire en chaîne ressemble à ça (c'est le seul endroit où je peux penser qui pourrait être mauvais, puisque les observations dire qu'il tire de caractères ANSI, mais je pense qu'il devrait se retirer de caractères Unicode):

Private Function CStrU(ByRef pstrANSI)

    ' Converts an ANSI string to Unicode
    ' Best used for small strings

    Dim llngLength ' Length of ANSI string
    Dim llngIndex ' Current position

    ' determine length
    llngLength = LenB(pstrANSI)

    ' Loop through each character
    For llngIndex = 1 To llngLength

        ' Pull out ANSI character
        ' Get Ascii value of ANSI character
        ' Get Unicode Character from Ascii
        ' Append character to results
        CStrU = CStrU & Chr(AscB(MidB(pstrANSI, llngIndex, 1)))

    Next

End Function

J'ai créé un test page asp (multiparttest.asp) pour répliquer à cela, le téléchargement des trucs de Lewis E. que moten est nécessaire pour le faire fonctionner (j'ai ajouté ses fichiers dans un sous répertoire appelé upload).

<%Response.CharSet = "UTF-8" %>
<!--#INCLUDE FILE="upload/clsUpload.asp"-->
<html>
    <head>
        <title>Test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        <%
        Set objUpload = New clsUpload
        Response.Write( objUpload.Fields("testInput").Value )
        %>
        <form method="post" enctype="multipart/form-data" action="multiparttest.asp">
            <input type="text" name="testInput" />
            <input type="submit" value="submit" />
        </form>

    </body>
</html>

J'ai saisi de la demande à l'aide LiveHTTP les en-Têtes dans Firefox, et enregistré comme un fichier UTF-8, les caractères suédois dirait qu'ils devraient (ils n'ont pas l'air ok dans la LiveHTTP en-tête de l'interface, mais je devine que l'interface graphique elle-même n'utilise pas le bon encodage). C'est la façon dont la requête POST ressemble:

http://localhost/testsite/multiparttest.asp

POST /testsite/multiparttest.asp HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://localhost/testsite/multiparttest.asp
Cookie: ASPSESSIONIDASBBRBTT=GLDJDBJALAMJFBFBDCCIONHF; ASPSESSIONIDAQABQBTT=DIPHILKAIICKJOIAIMILAMGE; ASPSESSIONIDCSABTCQS=KMHBLBLABKHCBGPNLMCIPPNJ
Content-Type: multipart/form-data; boundary=---------------------------7391102023625
Content-Length: 150
-----------------------------7391102023625
Content-Disposition: form-data; name="testInput"

åäö
-----------------------------7391102023625--

HTTP/1.x 200 OK
Cache-Control: private
Content-Length: 548
Content-Type: text/html; Charset=UTF-8
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Date: Tue, 10 Nov 2009 14:20:17 GMT
----------------------------------------------------------

Toute aide dans cette mater est apprécié!

MODIFIER 10/11:

J'ai essayé d'ajouter tous ces vers le haut du fichier asp, en raison des différentes suggestions que j'ai trouvé sur ce problème ailleurs, sans résultat différent..

<%@Language=VBScript codepage=65001 %>
<%Response.ContentType="text/html"%>
<%Response.Charset="UTF-8"%>
<%Session.CodePage=65001%>

MODIFIER 11/11:

Cette question semble liée, UTF-8 texte est tronqué lorsque le formulaire est affiché en tant que " multipart/form-data. Mais ils n'utilisent pas d'ASP ou IIS. Est-il possible de mettre en place un type de codage de caractères pour multipart/form-data dans IIS? Je suis l'aide de IIS7. Peut-être que ma demande n'ont pas l'encodage approprié, après tout? (Je suis vraiment perdu dans l'encodage des caractères monde maintenant)

OriginalL'auteur fredrik | 2009-11-10