Konwersja znaków

M Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam,

W bazie danych ktoś dokonał konwersji.
Prawdopodobnie jest to latin2. Próbowałem użyć wbudowanej funkcji oraz Gżegżółki do konwersji (bez pozytywnych skutków).
Jak mogę to naprawić?

W załączniku zdjęcie bazy.

UglyMan
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2206
1

Co to za baza . Może ktoś ci po prostu wcisnął takie dane do bazy a z baza jest wszystko ok.

biela_
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: WPR
  • Postów: 136
2

replace jak nic nie znajdziesz innego... wygląda na łatwe do zastąpienia

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0

Skąd pewność, że ktoś dokonywał jakiejkolwiek konwersji w bazie? Obstawiam, że zaszła automatyczna konwersja, bo użytkownik nie wiedział, że okłamuje aplikację kliencką, np.

  • klient bazodanowy ma ustawione kodowanie X
  • baza ustawiona w kodowaniu Y
  • dane w kodowaniu Z

User zrobił copy&paste danych do klienta, zaszła konwersja między X a Y, przy założeniu, że dane są w X (ale faktycznie były w Y) i wyszła qpa.

  1. W jakim encodingu baza przechowuje dane?
  2. Jakie jest kodowanie klienta, na którym chcesz modyfikować dane?
  3. Jak wygląda binarna reprezentacja danych "złych" ? (różne silniki mają różne funkcje, np. dump w Oraclu)
M Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Dziękuję za odpowiedzi, poradziłem już sobie. Wątek do zamknięcia.

M Bee
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
1

Znaki latin2 były nieregularne (np. Ł w imieniu "Małgorzata" było zapisne na dwa różne sposoby w różnych rekordach, ale zauważyłem że podczas konwersji na encje w Gżegżółce różnice pomiędzy rekordami znikają. Słownik encji na Wikipedii nie pomógł, bo znaczna część znaków się nie zgadzała. Na podstawie przeglądania bazy stworzyłem własny słownik i napisałem program podmieniający te dziwaczne encje na polski.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.