Avatar billede simsen Mester
30. august 2005 - 21:29 Der er 7 kommentarer og
1 løsning

Vil ikke gemme danske tegn i databasen

Jeg har et "mindre" problem (ironisk ment). Jeg har hentet et asp cms system ned og vil så tilrette mine sider, så jeg kun skal bruge wysiwyg editoren.

Mit problem ligger i, når jeg forsøger at gemme tekst - så oversætter den æøå til noget volapyk, når det sættes ind i databasen i databasen; æøå (og der skulle altså stå æøå)

Jeg aner slet og ret ikke hvorfor (et par bandeord), den gør det. Nogen der kan hjælpe?

Koden er som følger: (og problemet ligger i pagedata og pagename)

<head>
<script language="Javascript1.2"><!-- // load htmlarea
_editor_url = "";                    // URL to htmlarea files
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }
if (win_ie_ver >= 5.5) {
document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');
document.write(' language="Javascript1.2"></scr' + 'ipt>'); 
} else { document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); }
// --></script>

<!-- #INCLUDE FILE="../common/checksession.asp" -->
<%
    ID = request("ID")
    if not isNumeric(id) or id = "" then
        response.redirect("default.asp?not_number")
    end if
%>

<!-- #INCLUDE FILE="../common/dbconn1.asp" -->
<!-- #INCLUDE FILE="../common/headerAdm.asp" -->
<!-- #INCLUDE FILE="../common/admin_nav.asp" -->
<!--- Type Content Below --->
<%
'==========SETUP IMAGES LIST===========
    Set myFso = Server.CreateObject("Scripting.FileSystemObject")
    Set Myfolder = Myfso.GetFolder(imageuploadpath)

'*****IF POSTBACK THEN UPDATE********
if request.form("postback") = 1 then

    set updateRS = Server.CreateObject("ADODB.RecordSet")
    updateSQL = "SELECT pagename, pagedata, active, directlink from tblPages where ID = " & ID & ";"
    updateRS.Open updateSQL, whtConn, 1,3
        recordcount = updateRS.recordcount
        if recordcount <> 1 then
            updateRS.Close
            Set updateRS = Nothing
            whtConn.Close
            Set whtConn = Nothing
            response.redirect("default.asp?norecord")
        end if
    updateRS("pagename") = Presubmit2(request.form("pagename"))
    pagedata = Presubmit(request.form("pagedata"))

    insertimage = request.form("insertimage")
    if insertimage <> "" then
        imagelink = "<img src='" & imagewebpath & insertimage & "'>"
        'response.write imagelink
        pagedata = replace(pagedata,"imagehere",imagelink)
    end if

    updateRS("pagedata") = pagedata
    updateRS("directlink") = Presubmit2(request.form("directlink"))
    updateRS("active") = request.form("active")
    updateRS.update
    updateRS.Close
    set updateRS = Nothing
    message = "<p><font color='#FF0000'>Update Successful</font></p>"
end if

Set dataRS = Server.CreateObject("ADODB.RecordSet")
ID = request("ID")
whtSQL = "Select ID, pagedata, pagename, active, directlink FROM tblPages where ID = " & ID & ";"
'Response.Write whtSQL
dataRS.Open whtSQL, whtConn, 1
        recordcount = dataRS.recordcount
        if recordcount <> 1 then
            dataRS.Close
            Set dataRS = Nothing
            whtConn.Close
            Set whtConn = Nothing
            response.redirect("default.asp?norecord")
        end if
pagename = dataRS("pagename")
ID = dataRS("ID")
pagedata = dataRS("pagedata")
directlink = dataRS("directlink")

active = dataRS("active")
    if active = 1 then
        activeform = "<input type='checkbox' name='active' value='1' checked class=""cssborder"">"
    else
        activeform =  "<input type='checkbox' name='active' value='1' class=""cssborder"">"
    end if

'close connections,etc..
dataRS.Close
Set dataRS = Nothing
whtConn.Close
Set whtConn = Nothing
%>
<%=message%>

<form action="editpage.asp" method="post" name="frm" language="javascript">
<table class="smallbold">
    <tr>
        <td>Page Title </td>
        <td> <input type="text" name="pagename" value="<%=pagename%>" class="cssborder"></td>
    </tr>
    <tr>
        <td nowrap>Page Direct Link </td>
        <td><input type="text" name="directlink" value="<%=directlink%>" size="55" class="cssborder"></td>
    </tr>
    <tr>
        <td>Active </td>
        <td><%=activeform%></td>
    </tr>
</table>
<textarea cols="75" rows="15" name="pagedata"><%=pagedata%></textarea>
<script language="JavaScript1.2" defer>
editor_generate('pagedata');
</script>
<p class="smalltext">To insert an image, type <strong>imagehere</strong> on your page where you want the image appear.
<br>Then select the image from the drop down box below and click update.</p>
<select name="insertimage" size="1" class="cssborder">
<option selected></option>
<%
    filecount = 0
    For Each myFile in MyFolder.Files
    filename = myfile.name
        Response.Write "<option>" & filename & "</option>"
    filecount = filecount + 1
Next
Set MyFolder = Nothing
Set myFSO = Nothing
%>
</select>

<input type="hidden" name="postback" value="1">
<input type="hidden" name="id" value="<%=id%>">
<input type="submit" name="Update" value="Update" class="cssborder">
</form>
<!-- #INCLUDE FILE="../common/footer.asp" -->
Avatar billede simsen Mester
30. august 2005 - 21:31 #1
Hov glemte lige at i dbconn1.asp er funktionerne PreSubmit og PreSubmit2, hvor jeg har forsøgt at oversætte æ, ø og å;

<%
'========EDIT THE LINE BELOW TO YOUR WEB PATH TO THIS APP====================
'example: if you copied your files to http://www.example.com/test/ then
'          you can enter "/test"
'        if you are using the webroot then leave blank ""
appurl = "/ansi"

'========EDIT THE LINE BELOW TO POINT TO YOUR DATABASE LOCATION==============
dbPath = "C:\Inetpub\wwwroot\ANSI\data\acm.mdb"

'==OPTIONAL: EDIT THE LINE BELOW ONLY IF YOU WISH TO CHANGE THE UPLOAD PATH==
imageuploadpath = Server.MapPath(appurl & "\userimages\")
imagewebpath = appurl & "/userimages/"

'======================================================================
'        END OF GENERAL EDITABLE AREA
'======================================================================
set whtConn = server.createobject("adodb.connection")
whtConn.Open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=" & dbPath

'FUNCTIONS
FUNCTION PreSubmit(p_sTargetString)
    PreSubmit = REPLACE(p_sTargetString,"textarea","")
    PreSubmit = REPLACE(PreSubmit,"%","&#37;")
    PreSubmit = REPLACE(PreSubmit,"'","&#39;")
    PreSubmit = REPLACE(PreSubmit,"æ","&aelig;")
    PreSubmit = REPLACE(PreSubmit,"ø","&oslash;")
    PreSubmit = REPLACE(PreSubmit,"å","&aring;")       
    'PreSubmit = REPLACE(PreSubmit,"""","&quot;")
    PreSubmit = Trim(PreSubmit)
END FUNCTION

FUNCTION PreSubmit2(p_sTargetString)
    PreSubmit2 = REPLACE(p_sTargetString,"textarea","")
    PreSubmit2 = REPLACE(PreSubmit2,"%","&#37;")
    PreSubmit2 = REPLACE(PreSubmit2,"'","&#39;")
    PreSubmit2 = REPLACE(PreSubmit2,"""","&quot;")
    PreSubmit2 = REPLACE(PreSubmit2,"<","&lt;")
    PreSubmit2 = REPLACE(PreSubmit2,">","&gt;")
    'PreSubmit2 = REPLACE(PreSubmit2,vbCrlf,"<br>")
    PreSubmit2 = Trim(PreSubmit2)
END FUNCTION
%>
Avatar billede erikjacobsen Ekspert
30. august 2005 - 21:41 #2
Det du ser er UTF-8 repræsentationen af æ, ø og å. Du skal sørge for enten at sætte dine sider til UTF-8 tegnsæt, eller til ISO-8859-1 tegnsæt. Og måske din database. Mest "normalt" i vores del af verden er ISO-8859-1
Avatar billede softspot Forsker
31. august 2005 - 02:48 #3
...og det er noget med at sætte codepage i pagedirective og måske også i meta-tags på siden

65002 for UTF-8
1252 for ISO-8859-1

således:

<%@ language="vbscript" codepage="1252" %>
<html>
<head>
<meta http-equiv="Content-Type" Content="text/html; charset=iso-8859-1">
</head>
...

hvis jeg ikke tager meget fejl...
Avatar billede simsen Mester
31. august 2005 - 06:52 #4
Arghhhhhhhhh - det er bare FOR flovt - jeg havde ændret UTF-8 tegnsættet i headeren på default bare ikke på admins default *flov*

Takker fordi I gad hjælpe en "blond" kvinde :-)

erik:
Sætter du lige et svar, så du kan få nogle points også? *SS*
Avatar billede erikjacobsen Ekspert
31. august 2005 - 09:31 #5
Nej tak, jeg samler slet ikke på point.
Avatar billede simsen Mester
31. august 2005 - 16:30 #6
erikjacobsen

Din ånd kan jeg lide  - glad for at nogen som dig, vil hjælpe mig :-)

softspot

Så giv du et svar, så de points ryger :-)

mvh
simsen
Avatar billede softspot Forsker
31. august 2005 - 16:32 #7
Jamen, hvis du insisterer :)
Avatar billede softspot Forsker
01. september 2005 - 09:45 #8
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester