Co to za kodowanie ??

Co to za kodowanie ??
S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

Witam od pewnego czasu próbuje to ugryść ale mi nie wychodzi.
mam plik po podglądzie w hex jest coś takiego

Kopiuj
77 20 61 20 72 20 74 20 6F 20 5B 01 07 01

tam powino być słowo wartość

5B i 01 jak by zamienił miejscami czyli wyszło by 0x015B było by ś w unicode, ale jak koduje pod unicode to mam japońskie krzaczki, jak to można przerobić na ASCII, mam taki cały plik, nie chciał bym od podstaw robić kodowania bo nie znam znaczenia wszystkich pól.

Sugerując się polskimi ogonkami mi to wygląda na Unicode
Rozszerzony łaciński A
Ale jak to przekonwertować do ASCII

Jak to przełożyć na ASCII
Za wszystkie pomysłu i sugestie będę bardzo wdzięczny..

Z Góry dziękuję za pomoc.

0

Jest to LittleEndian UTF-16, przy czym, nie wiem dlaczego, standardowe znaki (z przedziału 0x00 - 0x7F) mają starszy bajt równy 0x20, a powinno być 0x00. Po zamianie 0x20 na 0x00 wychodzi słowo "wartość". A chińskie znaki masz dlatego, bo odczytałeś to jako BigEndian UTF-16.

S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

Jak to ugryźć w C#, próbuje też zamienić im wszystkim kolejność i zobacze co wyjdzie, napisz mi jak to przekonwertować na ASCII czysty w C#.

0

Zależy na co chcesz konwertować. Jeśli na stringa, to:

Kopiuj
string result = Encoding.Unicode.GetString(byteArray);

Jeśli zaś chcesz konwertować na tablicę typu byte, to:

Kopiuj
byte[] ascii = Encoding.Convert(Encoding.Unicode, Encoding.ASCII, byteArray);

gdzie byteArray to powyższa tablica, ale już z zamienionymi parzystymi elementami z 0x20 na 0x00. Zależnie od wymaganej strony kodowej Encoding.ASCII trzeba zamienić na np. Encoding.GetEncoding(852) dla strony kodowej IBM-852. Encoding.ASCII używa domyślnej strony kodowej systemu.

S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

Zamieniłem wszystkie wystąpienia 0x20 na 0x00 przy kodowaniu do unicode dalej mam japońskie znaki, kurde myślałem że da się to jakoś przekonwertować a nic nie wychodzi.

Próbowałem jak kolega radził ale mimo wszystko mam krzaczki.

0

Ale zamieniałeś kolejność bajtów przed konwersją, czy nie? Dla takiej kolejności bajtów jak podałeś w pierwszym poście powinieneś użyć Encoding.Unicode.GetString(), zaś dla odwróconej powinieneś użyć Encoding.BigEndianUnicode.ToString(). Tyle, że nie ma sensu odwracać kolejności bajtów przed konwersją. Ale na wszelki wypadek spróbuj również konwersji z użyciem Encoding.BigEndianUnicode.ToString(), bo być może podałeś tablicę przesuniętą o jeden bajt i kodowanie jest w BigEndian pomimo tego, że na podstawie tablicy, którą podałeś, wygląda to na LittleEndian.

0

BTW. Nie zwróciłem wcześniej na to uwagi, ale jeśli czytasz plik tekstowy zakodowany w Unicode, to te wszystkie kombinacje są zbędne. Jeśli plik jest zwykłym plikiem tekstowym i zawiera BOM (vide -> wikipedia), to odczyt w .NET jest banalnie prosty:

Kopiuj
StreamReader reader = new StreamReader("plik_unicode.txt", true);
string file_content = reader.ReadToEnd();

Jeśli nie zawiera BOM, to znając kodowanie można odczytać go w prawie identyczny sposób:

Kopiuj
StreamReader reader = new StreamReader("plik_unicode.txt", Encoding.Unicode);
string file_content = reader.ReadToEnd();

Wystarczy w konstruktorze StreamReader-a podać odpowiednie kodowanie.

S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

wysyłam ci linka, spakowałem 2 pliki, jeden przed przeróbką 2 po przeróbce tak jak mówiłeś 0x20 na 0x00

Tu jest link spakowane rarem. http://wyslijplik.pl/download.php?sid=vG5F0CS5

Ja to otwieram sobie programem nazywa się AkelPad - w nim są różne kodowania.
Link do programu AkelPad http://akelpad.sourceforge.net/en/download.php

A hex który używam to 010 Editor http://www.010editor.com/

Sprawa wygląda tak, w normalnej formie nie da się tego żadnym kodowaniem ruszyć, jak zmieniam bajty tak jak napisałeś to otwiera mi, mam polskie czcionki lecz robią się niektóre linie po japońsku sam zobacz.

Dziękuję ci za pomoc.

0

O, teraz wszystko jest jasne. Plik ten został nieprawidłowo zapisany. Został po pierwsze otwarty/odczytany jako plik tekstowy z kodowaniem ANSI, a nie Unicode i jako taki został też zapisany. W takim przypadku znaki o kodzie ASCII 0x00 pojawiają się jako spacje i przy zapisie pliku są zapisywane kodem 0x20 czyli kodem ASCII odpowiadającym spacji. Poza tym plik na początku nie posiada BOM-u, lecz dwa BOM-y znajdują się w innych miejscach pliku (FF FE - wskazuje na UTF-16 LittleEndian), co wskazuje, że kilka plików Unicode zostało połączonych, lecz nie w trybie Unicode, tylko w trybie ANSI. Dodatkowo w niektórych miejscach brakuje pojedyńczych bajtów, co również jest efektem próby odczytu, a następnie zapisu pliku jako pliku z kodowaniem ANSI i dlatego nawet po podzieleniu pliku przekonwertowanego z 0x20 na 0x00 kodowanie w niektórych miejscach się rozsypuje.

S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

Dzięki, zaraz załatwie orginalne pliki, ponieważ już takie dostałem, a robie wszystko z pod hex wiec nie ma możliwości zmienić kodowania. jak będę miał orginalne pliki będę pisał.
Jak narazię dziękuję.

S1
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 3 lata
  • Lokalizacja:Nowy Sącz
  • Postów:46
0

Wszystko jasne, kodowanie dobre mi wskazałeś, bom jest w dobrym miejscu, w właściwym.

Ten plik to pak różnych plików, dlatego niektóre informacje są w ansi a inne kodowane w UTF-16 FE.

Zostało mi jedynie rozpracować format by to rozpakować i będzię ok. dzięki za pomoc..

Jak byś też chciał posiedzieć nad tym to kliknij do mnie a wyjaśnie ci sprawę..

Pozdrawiam.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)