Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Byta encoding på en sträng

Postades av 2006-10-20 16:36:59 - Hampus Klarin, i forum c# (c-sharp), Tråden har 9 Kommentarer och lästs av 2553 personer

Detta är kanske en lite konstig förfrågan, men jag behöver "förstöra" en Unicodesträng, eller rättare sagt byta ut svenska och andra internationella tecken.
Jag ska nämligen skriva den till en fil, som sedan en extern applikation (utanför min kontroll) kommer att "dekoda" den rätt.

Jag utgår givetvis från en vanlig C#-sträng (UTF-16?) som har åäö o s v. Jag vill sen att strängen ska bli som om man tittar på en UTF-8 sträng med en enklare teckentabell (typ Amerikansk Windows ANSI?), det vill säga "ä" ska bli "ä", "ö" ska bli "ö" och så vidare, innan jag skriver ner den.

Hur gör jag detta (utan att använda Replace...)?

Jag har gjort om strängen till en byte[] och därefter gjort Encoding.Convert på den till Encoding.ASCII, men då blir ju alla tecken utanför ASCII-rymden bara "?"


Svara

Sv: Byta encoding på en sträng

Postades av 2006-10-21 10:18:54 - Simon Dahlbacka

alltså, ska du inte helt enkelt skriva den som UTF-8 då?


Svara

Sv:Byta encoding på en sträng

Postades av 2006-10-21 11:45:27 - Hampus Klarin

Nae, då kommer ju "åäö" rätt med, och då får det mottagande programmet problem (åäö försvinner bara helt sonika när programmet "tolkat" innehållet).


Svara

Sv: Byta encoding på en sträng

Postades av 2006-10-22 12:20:36 - David Tellander

Vilken encoding förväntar sig det mottagande programmet?


Svara

Sv:Byta encoding på en sträng

Postades av 2006-10-22 20:44:30 - Hampus Klarin

Det är det som är det lustiga - den vill ha UTF-8. Men kruxet är att den vill ha strängen som om den inte vore det.

Om man t ex öppnar en fil sparad i UTF-8-format i valfri texteditor (Crimson Editor, EditPlus och såna där) som UTF-8 visas ju allt korrekt. Öppnar jag den däremot som "Plain text" blir ju åäö och andra liknande tecken "korrupta". De "konverteras" till två tecken, Ã och ett till.

Det externa programmet tar emot strängen och "antar" på något sätt att strängen är UTF-8 som har blivit korrupt och gör därför en omvänd tolkning (precis som texteditorn gör om man väljer att byta tillbaka Encodingen till UTF-8) och byter ut tecknen mot sina riktiga. Skickar jag in åöö direkt blir denna avkodning misslyckad och alla internationella tecken försvinner bara från texten. Därför behöver jag först "nedgradera" strängen.

Jag _gissar_ att det i .NET skulle funka att först konvertera min sträng till en byte[] och sen med hjälp av en passande System.Text.Encoding göra den till en sträng igen. Problemet är att jag inte vet vilken.


Svara

Sv: Byta encoding på en sträng

Postades av 2006-10-23 08:27:16 - Martin Adrian

>Om man t ex öppnar en fil sparad i UTF-8-format i valfri texteditor (Crimson Editor, EditPlus och såna
>där) som UTF-8 visas ju allt korrekt. Öppnar jag den däremot som "Plain text" blir ju åäö och andra
>liknande tecken "korrupta". De "konverteras" till två tecken, Ã och ett till.

Du har nog missuppfattat hur UTF-8 fungerar. Alla tecken med unicode > 127 använder flera bytes så det sker ingen konvertering.


Svara

Sv:Byta encoding på en sträng

Postades av 2006-10-23 10:34:34 - Hampus Klarin

Nej, jag tror jag förstår, det är därför jag skriver "korrupta" "konvertera", "dekoda" (med citattecken) o s v, jag är ju inte riktigt säker på vad det jag vill uppnå är :/ (kan bara säga exakt vad jag vill effekten ska vara).


Svara

Sv: Byta encoding på en sträng

Postades av 2006-10-23 11:11:26 - David Tellander

Du får nog göra det i två steg om jag förstått dig rätt. Först koda din unicode-sträng till t.ex. latin-1 (iso-8859-1) och sedan koda dessa bytes som UTF-8.


Svara

Sv:Byta encoding på en sträng

Postades av 2006-10-23 11:34:19 - Hampus Klarin


Svara

Sv: Byta encoding på en sträng

Postades av 2006-10-23 12:44:19 - Ola Lindfeldt

Mottagande system måste ju rimligen använda någon encoding som existerar.
Det där med "felaktig UTF-8" låter som en missuppfattning från något håll.
Troligen är det en annan encoding, t.ex. ascii codepage 850 nordic som används.
Den finns som System.Text.Encoding.GetEncoding(850). Alltså prova att skriva filen så.


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 811
27 960
271 761
550
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies