C# zamiana z mozavia na utf8

0

Witam serdecznie,
Mam plik zapisany w Mazovi i chciałbym go przekonwertować na UTF8... znalazłem taki kod:

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Collections;
 
 
namespace ConsoleApplication1
{
    class Program
    {
         
        static void Main(string[] args)
        {
            
            string datatable;
            string datatable2;
            datatable2 = System.IO.File.ReadAllText("C:\\txt.txt");
 
            Encoding mazoviaEnc = Encoding.GetEncoding(852);
 
            byte[] mazoviaBytes = mazoviaEnc.GetBytes(datatable2);
 
            string utf7str = Encoding.UTF7.GetString(
 
                             Encoding.Convert(mazoviaEnc, Encoding.UTF7, mazoviaBytes));
 
            Console.WriteLine("abc: ", datatable2);
        }
    }
    public class MazoviaEncoding : Encoding
    {
        private MazoviaEncoding() { }
        private static MazoviaEncoding _encoding = null; public static Encoding Mazovia { get { if (_encoding == null) { _encoding = new MazoviaEncoding(); } return _encoding; } }
        public override byte[] GetBytes(string s) { List<byte> data = new List<byte>(); foreach (char c in s) { data.Add(CharToByte(c)); } return data.ToArray(); }
        public override string GetString(byte[] bytes, int index, int count)
        {
            if (bytes == null) { throw new NullReferenceException(); }
            if (index < 0 || index + count > bytes.Length) { throw new IndexOutOfRangeException(); }
            StringBuilder sb = new StringBuilder(); for (int i = index; i < index + count; i++) { if (bytes[i] == 0) { break; } sb.Append(ByteToChar(bytes[i])); } return sb.ToString();
        }
        private byte Cha;
 
    }
}

ale niestety nie chce się to skompilować :( Mógłbym prosić o pomoc z kompilacją tego?

Wyrzuca mi błąd:
Error 1 'ConsoleApplication1.MazoviaEncoding' does not implement inherited abstract member 'System.Text.Encoding.GetMaxCharCount(int)' C:\Application1\Program.cs 32 18 ConsoleApplication1

Co robię nie tak??:(

Northwest

0
byte data_mazowia[]; // tekst zakodowany w Mazowii (wejście)
byte data_utf8[]; // tekst zakodowany w UTF-8 (wyjście)

data_utf8 = Encodeing.Convert(Encoding.GetEncoding(852), new UTF8Encoding(), data_mazowia);
1

Zdecydujmy się:
albo mówimy o kodowaniu Mazovia, które nie ma oficjalnego numerka,
albo mówimy o kodowaniu IBM Latin 2, które ma oznaczenie 852.

To nie jest to samo.

cp852 jest obsługiwane przez Windows i .Net Framework.
Mazovia wymagałaby napisania własnego kodu.

0

niestety to nie działa :(

http://www.udanewakacje.net/maz.txt - mam taki plik... nie zamienia ta funkcja na UTF'a:(

0

Jak dziedziczysz po Encoding musisz zaimplementować wszystkie abstrakcyjne metody Encoding, także GetMaxCharCount(int).

0

Po pierwsze, kod nie działa, bo jest skopiowany z urwanego w połowie posta z CodeGuru. Po drugie, ten plik nie ma kodowania Mazovia, a przynajmniej nie ma w nim polskich znaków diakrytycznych w tym kodowaniu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1