/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
UTF-8, encodin/decoding, URL
Fra : Allan Unnerup


Dato : 20-02-05 20:58

Jeg er løbet ind i problemer med encoding/decoding af en UTF-8-tekststreng,
der skal sendes via en URL.

Jeg har test_encode.jsp med følgende kode:
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.net.URLEncoder" %>
<html>
<head><title>test encode charset=UTF-8</title>
</head>
<BODY>
<a href="test_decode.jsp?name=<%=URLEncoder.encode("Værft",
"UTF-8")%>">encode Værft</a>
</BODY>
</html>

Og jeg har
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.net.URLDecoder" %>
<html>
<head><title>test decode charset=UTF-8</title></head>
<BODY>
<%
String p_name = (String) request.getParameter("name");
if (p_name==null) p_name = "";
%>
Foer decode:<%=p_name%><br>
Efter decode:<%=URLDecoder.decode(p_name, "UTF-8")%>
</BODY>
</html>

Ovenstående program kan udføres her:
http://www.yachtdatabase.com.beta.levonline.com/app/test_encode.jsp
Dette program kalder nedenstående program med url'en:
http://www.yachtdatabase.com.beta.levonline.com/app/test_decode.jsp?name=V%C
3%A6rft

Hvad gør jeg galt?
Det ovenstående program viser teksten "Værft" fint nok.
Jeg ville jo morderlig gerne også have det nederste program til at vise det
samme og ikke "Værft"

Med venlig hilsen
Allan
T



 
 
Allan Unnerup (20-02-2005)
Kommentar
Fra : Allan Unnerup


Dato : 20-02-05 23:19

Kære Alle

Hvis nogen skulle have samme problem, har jeg nu fundet en løsning:

I stedet for:
p_name = URLDecoder.decode(p_name, "UTF-8");
Skal man skrive:
p_name = new String(p_name.getBytes(),"UTF8");

Med venlig hilsen
Allan




Søg
Reklame
Statistik
Spørgsmål : 177458
Tips : 31962
Nyheder : 719565
Indlæg : 6408170
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste