---
title: "Å-Ä-Ö i regex"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/90330-å-ä-ö-i-regex"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "AG"
published: "2003-11-13T13:39:09.000Z"
updated: "2003-11-21T09:02:23.000Z"
replies: 10
views: 1024
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/90330-å-ä-ö-i-regex"
---

# Å-Ä-Ö i regex

## #1 — AG, 2003-11-13T13:39Z

Har ett problem.
Skulle vilja göra så att följande kodsnutt fungerar som det är tänkt:

```
Pattern pd11= Pattern.compile("Ab");
Matcher md11 = pd11.matcher(track2);
track2 = md11.replaceAll("Å");
```

Men som det är nu översätts det inte riktigt, den förstår inte Å utan skriver ut det som ett kors av nåt slag :)
Antar att jag måste lägga till Latin1-supplement, men vet ej hur jag gör.

tack
Andreas

Permalänk: https://www.webforum.nu/p/90330

## #2 — Viktor, 2003-11-13T14:20Z

Var blir det kors istället för Å? I strängen eller vid utskriften?

/Viktor

Permalänk: https://www.webforum.nu/p/1204958

## #3 — AG, 2003-11-13T14:22Z

Skriver jag ut strängen så blir det ett kors.

Andreas

Permalänk: https://www.webforum.nu/p/1204962

## #4 — Viktor, 2003-11-13T14:28Z

Då låter det som det vanliga DOS problemet, åäö blir alltid konstriga tecken i DOS (Å blir ett kors) eftersom Java använder Unicode för sina tecken.

Jag vet tyvärr inte hur du ska fixa det dock, men det är inget fel i ditt Java program.

/Viktor

Permalänk: https://www.webforum.nu/p/1204969

## #5 — AG, 2003-11-13T14:33Z

Säker, har lagt till latin1-supplement en annan gång nämligen.

Andreas

Permalänk: https://www.webforum.nu/p/1204971

## #6 — Viktor, 2003-11-13T14:43Z

Visst är jag säker, så säker att jag var tvungen att göra ett test program :)

```
public class Test
{
	public static void main(String argv[])
	{
		System.out.println(replace());
	}

	private static String replace()
	{
		String test="Hello World Ab Ab Ab Ab";
		
		Pattern p = Pattern.compile("Ab"); 
		Matcher m=p.matcher(test);
		return(m.replaceAll("Å"));
	}
}
```

Resultatet i DOS blev 

> Hello World &#9532; &#9532; &#9532; &#9532;

och resultatet i Eclipse blev

> Hello World Å Å Å Å

Det är altså inget fel på koden utan på Windows, som vanligt  ;) 

/Viktor

Permalänk: https://www.webforum.nu/p/1204978

## #7 — spango, 2003-11-13T15:06Z

Vill man att det ska visas läsbart i DOS-fönstret kan man göra på följande vis när man startar Java:
*C:\\foo\\bar\> **java -Dfile.encoding=cp850 DinKlass***
Dock måste man i sådana fall ha alla textfiler m.m. som programmet läser in DOS-kodade (eller så får man ange vilken kodning man använder när man öppnar filerna), så det suger ändå. Den mest uppenbara lösningen är förstås att gå över till en miljö där man kan använda en Riktig teckenkodning i terminalfönstren... ;) eller så står man ut med knasiga tecken.

Permalänk: https://www.webforum.nu/p/1204992

## #8 — AG, 2003-11-13T15:57Z

KOden nedan fungerar ej iaf:

```
// Hämta variabler
		String track = request.getParameter("track");
		String track2 = "";

		Pattern pd11= Pattern.compile("Ab");
		Matcher md11 = pd11.matcher(track);
		track2 = md11.replaceAll("Å");

		Pattern pd = Pattern.compile("-");
		Matcher md = pd.matcher(request.getParameter("date"));
		String date = md.replaceAll("");

		String race = request.getParameter("race");

// Hämta data från x	
		getTrottingData bean = new getTrottingData();
		String host = "http://www.sida.com/RServlet?datum="+ date +"&bankod="+ track2 + "&action=loppresultat&betType=VP&race="+ race;
```

Requesten track har värdet Ab, och därför borde track2 ha värdet Å, som sedan inkluderas i strängen host. Men det vill isg inte.

Andreas

Permalänk: https://www.webforum.nu/p/1205013

## #9 — Viktor, 2003-11-13T16:37Z

Är det track2 som inte blir Å? Om det är så så tror jag inte att parametern track är Ab, för om den är det så fungerar det perfekt.

```
public class Test
{
	public static void main(String argv[])
	{

		String track = "Ab";
		String track2 = "";

		Pattern pd11= Pattern.compile("Ab");
		Matcher md11 = pd11.matcher(track);
		track2 = md11.replaceAll("Å");

		String host = "http://www.sida.com/RServlet?datum=&bankod="+ track2 + "&action=loppresultat&betType=VP&race=";
		System.out.println("Host: "+host);
	}
}
```

Utskrift

```
Host: http://www.sida.com/RServlet?datum=&bankod=Å&action=loppresultat&betType=VP&race=
```

Kör en System.out.println på parametern track och försäkradig om att den är Ab (tänk på att regex är case sensitive).

/Viktor

Permalänk: https://www.webforum.nu/p/1205035

## #10 — spango, 2003-11-13T17:20Z

> **AG skrev:**
>
> ```
> String host = "http://www.sida.com/RServlet?datum="+ date +"&bankod="+ track2 + "&action=loppresultat&betType=VP&race="+ race;
> ```

Man ska inte ha åäö i URL:er. Du får koda om eländet:

```
import java.net.URLEncoder;
...
String host = "http://www.sida.com/RServlet?datum="+ date +"&bankod="+ URLEncoder.encode(track2, "utf-8") + "&action=loppresultat&betType=VP&race="+ race;
```

Permalänk: https://www.webforum.nu/p/1205055

## #11 — AG, 2003-11-21T09:02Z

Tack, men det löste sig ändå, vet inte riktigt hur.
För er som vill testa tjänsten:
<https://www.mycgiserver.com/~lair>
och wap-versionen:
<https://www.mycgiserver.com/~lair/wap.jsp>

Datan hämtas från ATG, de har sagt ok till att återpublicera deras listor. Så sidorna är dynamiska.

Andreas

Permalänk: https://www.webforum.nu/p/1211524

---

Tråden på webben: https://www.webforum.nu/amne/java/90330-å-ä-ö-i-regex
