Avatar billede jonasbc Nybegynder
04. juli 2002 - 10:39 Der er 7 kommentarer og
1 løsning

Alternativ til URLEncoder.encode()

Jeg sidder og roder lidt med at sende data fra en client til en Servlet direkte vha. en URL.

Når jeg så vil encode mine tekst-data, gi'r Forte mig en besked om, at URLEncoder.encode() er "depricated".

Hvad skal jeg bruge i stedet for?? Umiddelbart kan jeg altså ikke finde noget...

- Jonas
Avatar billede ladyhawke Novice
04. juli 2002 - 10:47 #1
Her er svaret fra suns hjemmeside:

(om encode())Deprecated. The resulting string may vary depending on the platform's default encoding. Instead, use the encode(String,String) method to specify the encoding.

Med andre ord du skal bruge den encode() der tager to steng parametre
Avatar billede ladyhawke Novice
04. juli 2002 - 10:48 #2
Her er den rigtige encode...

public static String encode(String s,
                            String enc)
                    throws UnsupportedEncodingException

Translates a string into application/x-www-form-urlencoded format using a specific encoding scheme. This method uses the supplied encoding scheme to obtain the bytes for unsafe characters.

Note: The World Wide Web Consortium Recommendation states that UTF-8 should be used. Not doing so may introduce incompatibilites.


Parameters:
s - String to be translated.
enc - The name of a supported character encoding.

Returns:
the translated String.
Avatar billede jonasbc Nybegynder
04. juli 2002 - 11:00 #3
Jaaa... joo... Hvor finder I det henne? Jeg kan ikke se det på http://java.sun.com/j2se/1.3/docs/api/ i hvert fald.
Men det virker nu alligevel. Nu er mit spørgsmål bare, hvad jeg skal skrive i parameter nr. 2?? Hvis jeg skriver UTF-8, bliver "æble" til "æble" og det ser lidt sjovt ud... :)

- Jonas
Avatar billede jonasbc Nybegynder
04. juli 2002 - 11:03 #4
Ohh... I C :) Jeg skal bare køre med jdk ver. 1.4...
Jeg har dog stadig ovenstående problem.
Avatar billede ladyhawke Novice
04. juli 2002 - 11:08 #5
Prøv at kigge her:

US-ASCII
Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. the Basic Latin block of the Unicode character set

ISO-8859-1 
ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1

UTF-8
Eight-bit UCS Transformation Format

UTF-16BE
Sixteen-bit UCS Transformation Format, big-endian byte order

UTF-16LE
Sixteen-bit UCS Transformation Format, little-endian byte order

UTF-16
Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark

The UTF-8 charset is specified by RFC 2279; the transformation format upon which it is based is specified in Amendment 2 of ISO 10646-1 and is also described in § 3.8 of The Unicode Standard, Version 3.0 (amended).

The UTF-16 charsets are specified by RFC 2781; the transformation formats upon which they are based are specified in Amendment 1 of ISO 10646-1 and are also described in § 3.8 of The Unicode Standard, Version 3.0.

The UTF-16 charsets use sixteen-bit quantities and are therefore sensitive to byte order. In these encodings the byte order of a stream may be indicated by an initial byte-order mark represented by the Unicode character '\uFEFF'. Byte-order marks are handled as follows:

When decoding, the UTF-16BE and UTF-16LE charsets ignore byte-order marks; when encoding, they do not write byte-order marks.

When decoding, the UTF-16 charset interprets a byte-order mark to indicate the byte order of the stream but defaults to big-endian if there is no byte-order mark; when encoding, it uses big-endian byte order and writes a big-endian byte-order mark.

In any case, when a byte-order mark is read at the beginning of a decoding operation it is omitted from the resulting sequence of characters. Byte order marks occuring after the first element of an input sequence are not omitted since the same code is used to represent ZERO-WIDTH NON-BREAKING SPACE.
Every instance of the Java virtual machine has a default charset, which may or may not be one of the standard charsets. The default charset is determined during virtual-machine startup and typically depends upon the locale and charset being used by the underlying operating system.

kig også her (der stammer ovenstående fra):
http://java.sun.com/j2se/1.4/docs/api/
Avatar billede ladyhawke Novice
04. juli 2002 - 11:09 #6
Jeg håber du får det til at virke...
Avatar billede jonasbc Nybegynder
04. juli 2002 - 11:10 #7
Jeg fandt selv noget, der kan bruges på:
http://java.sun.com/j2se/1.4/docs/api/java/nio/charset/Charset.html

ladyhawke, skriver du lige et svar, så du kan få point?

- Jonas
Avatar billede ladyhawke Novice
04. juli 2002 - 11:12 #8
Takker og bukker :-)
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