---
title: "String.indexOf verkar inte vilja ta svenska tecken"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/93740-string-indexof-verkar-inte-vilja-ta-svenska-tecken"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "speedy"
published: "2004-01-01T16:36:18.000Z"
updated: "2004-01-02T14:29:52.000Z"
replies: 5
views: 551
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/dotnet/93740-string-indexof-verkar-inte-vilja-ta-svenska-tecken"
---

# String.indexOf verkar inte vilja ta svenska tecken

## #1 — speedy, 2004-01-01T16:36Z

Jag har lite problem med en sökfunktion jag jobbar på. Tanken är att man ska kunna söka igenom en massa objekt som innehåller attribut i form av strängar. 

Jag loopar igenom mina objekt och använder String.IndexOf("min söksträng") för att se om objektets attribut innehåller söksträngen.

Problemet med detta är att String.IndexOf inte verkar vilja ta svenska tecken. Så fort jag använder ett svenskt tecken i söksträngen så resulterar det i att jag inte får några träffar. Trotts att jag vet att det finns objekt som passar.

Någon som har något tips på en lösning/vad som kan vara fel?

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

## #2 — tydal, 2004-01-01T16:47Z

Kolla i debuggern så de verkligen har samma innehåll, dvs att det är samma sorts strängar med samma teckenuppsättning, så inte bara den ena är unicode, exempelvis. När du tittar på variabler i debuggern borde du få upp deras äkta innehåll, byte för byte.

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

## #3 — speedy, 2004-01-01T17:27Z

Jag har lyckats köra debuggingen så långt att jag fick fram värdena som låg i objekten. Det jag inte lyckas med är att se är om värdena är av unicode-typ eller inte. 

Jag är lite färsk på debugging så jag kanske kan få en hint om hur man kan se det :D

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

## #4 — juventus1, 2004-01-01T21:19Z

Kolla på "culture, comparing data" i hjälpen så ser du hur du ska lösa problemet. Det handlar om att sätta rätt kultur så att strängar jämförs på rätt sätt.

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

## #5 — speedy, 2004-01-02T11:30Z

Jag har läst på lite mer i hjälpen nu och framförallt kollat på CultureInfo-klassen. Jag har testat att göra om min kod lite men utan att få det att fungera.

Exempel på min gamla metod

```
string Attribute = "Mitt attribut i objektet";
string SearchParam = "Min söksträng";

int result1 = Attribute.IndexOf(SearchParam)
```

Som det ser ut nu:

```
CultureInfo ci= new CultureInfo("sv-SE");

string Attribute = "Mitt attribut i objektet";
string SearchParam = "Min söksträng";

int result1 = ci.CompareInfo.IndexOf(ArtAttribute, SearchParam, CompareOptions.IgnoreCase);
```

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

## #6 — juventus1, 2004-01-02T14:29Z

Prova det här istället. Det fungerar för mig iaf:

```
using System;
using System.Globalization;

public class Test {
	public static void Main(string[] args) {
		CultureInfo ci= new CultureInfo("sv-SE");

		string Attribute = "Hej din gamle häst";
		string SearchParam = "häst";

		int result = ci.CompareInfo.IndexOf(Attribute, SearchParam, CompareOptions.IgnoreCase);
		Console.WriteLine("Result: {0}", Attribute.Substring(result, SearchParam.Length));
	}
}
```

Men jag har inga problem att jämföra strängar som innehåller svenska tecken. Följande fungerar:

```
		string s1 = "hej gamle häst";
		string s2 = "häst";
		Console.WriteLine("Index: {0}", s1.IndexOf(s2));
```

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

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/93740-string-indexof-verkar-inte-vilja-ta-svenska-tecken
