Brak polskich znaków w pliku

Odpowiedz Nowy wątek
2018-02-12 23:40
Rambo
0

Witam

Szukam pomocy w rozwiązaniu problemu z polskimi znakami w pliku.

Nie znalazłem rozwiązania w Internecie.

Gdy otwieram CMD i wpisuję komendę net share to wszystko w konsoli wyświetla się z polskimi znakami.
Gdy natomiast wyświetlę komendę z zapisaniem do pliku net share > C:\aa2.txt to w pliku brakuje polskich znaków.

Taka sam sytuacja jest gdy chce to wykonać w c++

ShellExecute(0, "open", "cmd.exe", "/C net share > C:\\aa2.txt", 0, SW_HIDE);
edytowany 1x, ostatnio: furious programming, 2018-02-13 00:32

Pozostało 580 znaków

2018-02-13 00:33
0

A w czym podglądasz ten plik wynikowy?


Pozostało 580 znaków

2018-02-13 00:33
0

Otwórz plik w Notepad++ i poeksperymentuj z kodowaniem pliku.


Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2018-02-13 00:56
Rambo
0

Otwieram ten plik w Notatniku i tam jest bez polskich znaków
Otwieram w Notatnik ++ i tam są polskie znaki

Wczytuję do pola memo i tam nie ma polskich znaków.

Jak w pliku txt wpisze polskie znaki z klawiatury to wszystko wyświetla się prawidłowo.

Oszaleć można.

Pozostało 580 znaków

2018-02-13 01:00
0

@Rambo: systemowy notatnik jest badziewny, więc go nie używaj. Korzystaj z Notepad++ do wszystkiego co potrzebne przy programowaniu. Widzisz znaki diakrytyzowane, albowiem program ten kodowanie rozpoznaje i ustawia automatycznie. Sprawdź które ustawia dla tego pliku – otwórz plik w tym edytorze i w głównym menu rozwiń pozycję Encoding:

encoding.png

Górna część służy do ustawienia wyświetlania zawartości edytora, dolna zaś do jej konwersji.


Druga sprawa – w komponentach możesz widzieć krzaczki, jeśli korzystasz ze starego IDE, w którym VCL natywnie obsługuje ANSI. Jeśli tak jest to zawartość pliku tekstowego musisz przekonwertować na to kodowanie, bo dane w pliku mogą być w UTF-8.


edytowany 7x, ostatnio: furious programming, 2018-02-13 19:01

Pozostało 580 znaków

2018-02-13 01:33
0

https://superuser.com/questio[...]e-of-windows-console-to-utf-8


░█░█░█░█░█░█░█░█░█░█░█░

Pozostało 580 znaków

2018-02-13 10:10
1

Konsola pod Windows ma kodowanie 852, okienka mają 1250.
Być może do pliku zapisuje ci się w jednym, a otwierasz jako drugie.

Wątpię żeby miało to związek z Unicode, a tym bardziej z UTF-8 którego Windows nie używa.

edytowany 3x, ostatnio: Azarien, 2018-02-13 10:12

Pozostało 580 znaków

2018-02-13 11:02
Rambo
0

Tylko jak zmusić żeby konsola otwierała się w odpowiednim kodowaniu.
I czy da się to zrobić w kodzie C++

Pozostało 580 znaków

2018-02-13 11:16
Rambo
0

Znalazłem polecenie zmiany kodowania chcp 1250 niestety nie działa.

Pozostało 580 znaków

2018-02-13 12:00
0

Nie zmuszać. Poradzić sobie z tym faktem. Jeśli plik wynikowy jest w 852 to go przekonwertować albo załadować z odpowiednim kodowaniem - zależnie od tego co z nim dalej robisz.

Pozostało 580 znaków

2018-02-13 12:14
Rambo
0

Chciałem wyciągnąć pewne dane z systemu i zapisać je do pliku a następnie ten plik wyświetlić w polu Memo

 
    system("wmic computersystem  get name | findstr /v Name > C:\\hostname.txt | net share > C:\\share.txt");
 
    Form1->Memo_share->Lines->LoadFromFile("C:\\share.txt") ;
    TReplaceFlags rf2=TReplaceFlags()<<rfReplaceAll;
    Memo_share->Text=StringReplace(StringReplace(StringReplace(Memo_share->Text,"","",rf2),"\n","",rf2)," ","",rf2);
 

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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