---
title: "Färdig metod för att escapa viss tecken"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/128030-färdig-metod-för-att-escapa-viss-tecken"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "jme"
published: "2005-05-11T18:41:52.000Z"
updated: "2005-05-16T15:42:40.000Z"
replies: 9
views: 408
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/128030-färdig-metod-för-att-escapa-viss-tecken"
---

# Färdig metod för att escapa viss tecken

## #1 — jme, 2005-05-11T18:41Z

Hej!

Rätt så enkel fråga:

Stötte på problem med att söka efter åäö i databasen (MySql). Kör därför nu med frågor i stil med "SELECT \* FROM xxx WHERE word LIKE '%xxx%'.

Med Java så kör jag egentligen med PreparedStatement, så '%xxx%' byts ut mot ? och senare kör jag:

stmt.setString(1, "%" + ordet + "%");

Detta ställer till om jag söker efter ord som innehåller t ex "%". Finns det färdiga metoder för att "escapa" dessa tecken?
Vilka tecken bör man isf "escapa"?

Med escapa menar jag t ex \\% om "5" finns i strängen.

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

## #2 — Lime, 2005-05-12T06:36Z

Det där är, tyvärr, beroende på databasen.  Vissa implementationer escapar automatiskt när man använder %, \_, \\ eller något annat specialtecken i en sträng. Det måste du nog slå upp i manualen till det lib du använder dig av.

I C hade jag använt funktionen real_escape_string() men jag vet inte hur det ser ut i den implementation du använder (MySQL Connector/J??).

Dock har jag för mig att det i specen för JDBC sägs att setString(int, String) ska göra escape på de specialtecken som databasen hanterar. Det är därför man använder sig av prepared statements och inte vanliga statements om man bara kan.

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

## #3 — jme, 2005-05-13T13:49Z

Äh!

Jag kan lägga in ordet "sääääädfägädfg" i databasen men ordet "äää" går inte. 

Kör med PreparedStatement

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

## #4 — jme, 2005-05-13T15:34Z

Jag blir helt galen på detta åäö-problem. Jag får det inte att fungera.

Hur ska jag konffa MySql-tables?

Vilken character set skall jag köra med MySql?
Jag kan både sätta default character set med programmet
MySQLInstanceConfig.exe

I Java-koden har jag 

"jdbc:mysql://"+ host + ":" + port + "/" + database + "?useUnicode=true&characterEncoding=iso-8859-1";

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

## #5 — Lime, 2005-05-15T22:19Z

Ah...

iso-8859-1 är ju en pyttemjuk-uppsättning har jag för mig.

Testa vanlig jävla UTF-8 istället.

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

## #6 — spango, 2005-05-16T08:41Z

Hurru Lime, ISO-8859-1 är som namnet antyder en ISO-standard som precis lika gärna kan användas på Linux. Så det \*borde\* inte vara problemet, men om databasservern kör med någon annan teckenuppsättning (typ UTF-8) kan det knasa.

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

## #7 — jme, 2005-05-16T09:06Z

Jag "löste det". Tog bort ovanstående kod, dvs "?useUnicode=true&characterEncoding=iso-8859-1"

och då fungerar det.

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

## #8 — Lime, 2005-05-16T15:32Z

> **spango skrev:**
>
> Hurru Lime, ISO-8859-1 är som namnet antyder en ISO-standard som precis lika gärna kan användas på Linux. Så det \*borde\* inte vara problemet, men om databasservern kör med någon annan teckenuppsättning (typ UTF-8) kan det knasa.

Jag sa ju "tror jag". Givetvis är den en standard. Frågan är bara: Har du någonsin sett det användas på något annat system än Windows? Jag har inte gjort det...

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

## #9 — spango, 2005-05-16T15:37Z

> **Lime skrev:**
>
> Frågan är bara: Har du någonsin sett det användas på något annat system än Windows? Jag har inte gjort det...

I princip alla svensklokaliserade Linuxsystem jag använt har kört med det, så svaret är definitivt "ja" :)

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

## #10 — Lime, 2005-05-16T15:42Z

Ah... det förklarar saken... använder bara riktig Unix... ;-)

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

---

Tråden på webben: https://www.webforum.nu/amne/java/128030-färdig-metod-för-att-escapa-viss-tecken
