Avatar billede pjotre Novice
23. december 2024 - 14:43 Der er 5 kommentarer

html <Input.. Danske bogstaver

Jeg benytter asp.
Jeg har en html form med en <Input ----> tekst-felt. Det indtastede skrives ind i en database.
Når jeg får formen op og indtaster bogstaverne æøå og sender det det til asp programmet, som så skriver det ud på databasen. Desværre kommer det ikke korrekt ind på databasen. Det vises heller ikke korrekt på skærmen igen, men viser det der blev skrevet ud på databasen. Mystisk!
Skriver jeg æøå  --> response.write "æøå" kommer det korrekt på hjemmesiden.
Jeg har flere andre programmer, som også sætter et indtastet inputfelt ind på en database. Her fungerer æøå det perfekt!
Er der noget, som har et bud på, hvad der kan være galt.
Evt. kunne jeg foretage en konvertering af disse bogstaver i programmet inden de udskrives på databasen, men hvordan konverter man dette?
Avatar billede keysersoze Ekspert
23. december 2024 - 20:45 #1
Sørg for at alle dele af din applikation, dvs database, server og selv måden dine filer er gemt på kører samme encoding, bedst UTF-8.
Avatar billede a3-seo.dk Ekspert
29. december 2024 - 04:46 #2
Jeg har lige rettet æøå problemet på https://skole-leg.dk/

Med dette plugin https://da.wordpress.org/plugins/better-search-replace/ brugte jeg 15 min. på 120 tabeller og 18.000 linier+
Avatar billede keysersoze Ekspert
29. december 2024 - 11:13 #3
Wordpress benytter ikke ASP.
Avatar billede a3-seo.dk Ekspert
29. december 2024 - 12:02 #4
Når du arbejder med danske specialtegn som æ, ø og å i en .asp-fil, kan der opstå problemer på grund af forkert tegnsætning eller utilstrækkelig håndtering af Unicode. Her er nogle trin til at løse sådanne problemer:

1. Angiv korrekt tegnsæt i HTML
Sørg for, at din side har det korrekte tegnsæt angivet, enten via HTTP-headeren eller i en <meta>-tag i HTML-filen:

html
Kopier kode
<meta charset="UTF-8">
Hvis du bruger et andet tegnsæt, såsom ISO-8859-1 (Latin-1), skal det være det samme som det, du gemmer og sender data i.

2. Konfigurer ASP til korrekt kodning
I starten af din ASP-side kan du angive, at output skal være i UTF-8:

asp
Kopier kode
<%
Response.Charset = "UTF-8"
Response.CodePage = 65001
%>
65001 er CodePage-værdien for UTF-8.

3. Sørg for korrekt filformat
Gem dine .asp-filer i UTF-8 uden BOM (Byte Order Mark). Brug en teksteditor som Visual Studio Code eller Notepad++, hvor du kan vælge filformatet under "Gem som" eller "Encoding"-indstillinger.

4. Databasehåndtering
Hvis du arbejder med en database, skal du sikre dig, at den bruger korrekt tegnsæt (f.eks. UTF-8). Når du opretter forbindelse til databasen, kan du også specificere kodning:

asp
Kopier kode
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=mydsn;UID=myusername;PWD=mypassword;", , , adCmdText
Conn.CodePage = 65001
%>
5. Kontroller serverkonfiguration
Hvis problemet fortsætter, skal du tjekke webserverens opsætning:

Sørg for, at serveren understøtter UTF-8 i både indgående og udgående data.
Kontrollér, at ASP-konfigurationen ikke overskriver dine indstillinger.
6. Debugging
For at finde fejlkilden kan du:

Brug browserens udviklerværktøjer (Network-fanen) til at undersøge, hvordan serveren sender data.
Test med en simpel side for at isolere problemet.
Kontroller filen for uventede tegn eller encoding-fejl.
Hvis du stadig oplever problemer, kan du dele et konkret eksempel på fejlen eller relevant kode, så vi kan finde en specifik løsning. 😊
Avatar billede KombiPartner Juniormester
17. januar 2025 - 21:01 #5
Der er flere mulige årsager til, at dette kan ske, og vi kan tage et kig på nogle af de vigtigste løsninger og forslag til fejlfinding.

Mulige årsager og løsninger:
Teencoding problem (Database Encoding) Det er muligt, at der er et tegnkodningsproblem mellem din HTML-form, ASP og databasen. Når du indtaster specialtegn i formularen, bliver de sendt til serveren og derefter gemt i databasen. Hvis tegnkodningen ikke stemmer overens, kan specialtegnene blive "ødelagt".

Løsning:

Sørg for, at både din HTML-side og din database bruger UTF-8 encoding.
Hvis din database bruger en anden encoding (f.eks. Latin1), kan du forsøge at ændre databasefeltets tegnsætning til UTF-8.
1.1. HTML-formen: Sørg for, at din HTML-formular har den korrekte charset indstillet, så specialtegn sendes korrekt:

html
Kopiér
<meta charset="UTF-8">
1.2. Database encoding: Hvis du bruger SQL Server, MySQL eller en anden database, skal du sikre dig, at tabellen og kolonnerne, hvor du gemmer dataene, bruger UTF-8 som tegnsæt. For eksempel i MySQL:

sql
Kopiér
CREATE TABLE my_table (
  id INT,
  name VARCHAR(255) CHARACTER SET utf8
);
Eller i SQL Server kan du sikre, at din kolonne bruger en unicode-kompatibel datatype som NVARCHAR i stedet for VARCHAR.

Tegnkonvertering i ASP: Hvis databasen ikke understøtter UTF-8, kan du prøve at konvertere inputtet, inden du gemmer det i databasen. Dette kan gøres i ASP ved at bruge Server.HTMLEncode eller ved at konvertere tegnene til et standard format.

Løsning: Brug ASP til at konvertere specialtegnene til en sikker og databasevenlig form, før de gemmes. Dette kan gøres med Server.URLEncode:

asp
Kopiér
Dim inputText
inputText = Request.Form("your_input_field")
inputText = Server.URLEncode(inputText)
Dette sikrer, at alle specialtegn (som æ, ø, å) bliver korrekt kodet, så de ikke forårsager problemer med indtastning i databasen.

Visning af data korrekt: Når du henter dataene fra databasen og viser dem på din webside, skal du sikre dig, at de bliver dekodet korrekt i HTML-outputtet. Hvis du ikke gør dette, kan specialtegnene vises som mærkelige symboler.

Løsning: Brug Server.HTMLDecode til at konvertere URL-kodede værdier tilbage til deres originale form, når du viser dataene på din hjemmeside:

asp
Kopiér
Dim outputText
outputText = Server.HTMLDecode(recordset("column_name"))
Response.Write(outputText)
Hvis du allerede bruger Response.Write til at vise værdier, sørg for, at du har den korrekte encoding indstillet i både HTML (som nævnt ovenfor) og i din ASP-udskrivning.

Prøv at teste med et par forskellige teknologier: Hvis du stadig har problemer, kan du prøve at teste din applikation med et par forskellige teknologier for at se, om problemet skyldes ASP, HTML eller databasen:

Indsæt et input i formularen og brug Response.Write for at vise, hvad der sker med dataene på serveren.
Gem dataene i databasen og hent dem igen via en separat SQL-query for at sikre, at der ikke er noget problem med SQL-en.
Eksempel på hele processen i ASP:
For at sikre, at du håndterer specialtegn korrekt i din formular og database, kan en simpel ASP-kode som følger hjælpe:

asp
Kopiér
<%
' Formulardata
Dim inputText
inputText = Request.Form("your_input_field")

' Konverter inputtet til UTF-8, hvis nødvendigt
inputText = Server.URLEncode(inputText)

' Gem dataen i databasen (eksempel for SQL Server)
Dim conn, sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "your_connection_string"

sql = "INSERT INTO your_table (your_column) VALUES ('" & inputText & "')"
conn.Execute sql

' Bekræft eller vis data
Response.Write "Data indsat i databasen: " & Server.HTMLDecode(inputText)

' Luk forbindelse
conn.Close
Set conn = Nothing
%>
Sammenfatning:
Kontroller tegnkodningen i både din HTML-form og din database (brug helst UTF-8).
Brug URLEncode i ASP for at sikre, at specialtegn gemmes korrekt i databasen.
Brug HTMLDecode til at vise de korrekt kodede tegn på din webside.
Sørg for, at din database understøtter Unicode (brug f.eks. NVARCHAR i SQL Server eller utf8 i MySQL).
Jeg håber, at en af disse løsninger hjælper dig med at løse problemet.
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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