IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Problém s diakritikou

Aktivity
Avatar
Václav Pešek:23.9.2021 17:59

V rámci řešení příkladu na vašich stránkách https://www.itnetwork.cz/…-datove-typy jsem řešil "Pokročilý příklad", kde mám problém s diakritikou ... A nejsem sám, viz příspěvky pod článkem.
ZDROJÁK:

*

package cz.itnetwork.itnetwork;
import java.util.Scanner;
/**
 *
 * @author va057280
 */
public class itnetwork {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadej řetězec:");
        String retezec = sc.nextLine().toLowerCase();
        System.out.println(retezec.contains("itnetwork"));
    }
}

*
VÝSTUP:
Zadej řetězec:
Programovat se učím hlavně na ITnetwork a trochu i ve škole.
false

Zkusil jsem: Zkoušel jsem si proměnnou *retezec * na konci programu vytisknout příkazem *

System.out.println(retezec);

*

a zde je VÝSTUP:

Zadej řetězec:
Programovat se učím hlavně na ITnetwork a trochu i ve škole.
false
programovat se u

Můj závěr:
Vypadá to, jako by si program neporadil s diakritikou (konkrétně s písmenkem "č" .... přitom ve zdrojáku mám kódovou stránku 1250. Nevím. Nemá to vazbu na nastavení mých Windows?

Chci docílit: Pochopit výše uvedený problém.

 
Odpovědět
23.9.2021 17:59
Avatar
Odpovídá na Václav Pešek
Matúš Olejník:23.9.2021 21:36

Programuješ v NetBeans? Použi Intellij Idea, nikdy som sa tam s takým problémom nestretol.

Nahoru Odpovědět
23.9.2021 21:36
/* I am not sure why this works but it fixes the problem */
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Václav Pešek
Atrament:23.9.2021 23:46

Ahoj, problém s diakritikou zkoumám, ale zatím se mi nepodařilo přijít na to, kde je zakopaný pes. Kód máš správně, ale vypadá to na nějakou nekompatibilitu mezi Netbeans a Mavenem, který ten kód spouští. Problém samotných Netbeans to nebude, protože když založíš projekt s Antem místo s Mavenem, tak stejný kód funguje bez problémů, a zároveň to asi nebude ani problém čistě Mavenu, protože, když ten projekt spustíš přímo z příkazové řádky pomocí příkazu mvn tak to taky funguje bez problémů. Problém bude někde mezi...

Takže zatím je asi nejlepším řešením na ty příklady, kde se pracuje s uživatelovým vstupem použít projekt Java with Ant, snad to bude brzy opraveno

 
Nahoru Odpovědět
23.9.2021 23:46
Avatar
Lubor Pešek
Člen
Avatar
Odpovídá na Atrament
Lubor Pešek:10.10.2021 18:58

Podařilo se ti něco najít? Já jsem objevil ještě další zajímavý úkaz (konkrétně z IDEI). Pokud zbuildím ze standardního builderu, tak mi kódování probíhá v pohodě a to včetně následně spuštěného byte kódu či archivu v systémech (jak na linuxu, tak na widlích).

Pokud to zbuildím přes maven, tak to sice v IDEI běží v pořádku, ale pak mi při spuštění v systémech hlásí chybu v kódování pro změnu standardní výstup. To, co tam zadám je sice v pořádku, ale výstup se v CLI špatně kóduje.

Ještě to víc zkusím zanalyzovat a dopátrat se k problému. Je to zajímavé, ale podle mě to bude vše souviset s nastavením terminálu v IDEčcích.

Nahoru Odpovědět
10.10.2021 18:58
Existují dva způsoby, jak vyřešit problém. Za prvé vyhoďte počítač z okna. Za druhé vyhoďte okna z počítače.
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Lubor Pešek
Atrament:10.10.2021 20:59

Zatím jsem s tím na mrtvém bodě, nahlásil jsem bug u Netbeans, snad se tam toho někdo chytne...

 
Nahoru Odpovědět
10.10.2021 20:59
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Lubor Pešek
Atrament:31.10.2021 11:48

Tak už se to pohnulo, na githubu už je PR, který to řeší, snad se to dostane do příští verze

 
Nahoru Odpovědět
31.10.2021 11:48
Avatar
Odpovídá na Atrament
Václav Pešek:31.10.2021 23:09

Lubore, děkuji.
Venca

 
Nahoru Odpovědět
31.10.2021 23:09
Avatar
Odpovídá na Atrament
Václav Pešek:26.11.2021 0:59

Ahoj (asi nejspíš) Atramente.
Přiznám se, že jsem tak trochu bezradný. Problém s diakritikou přetrvává. Nefunguje mi ani následující příklad:

package cz.itnetwork.nacvikvstupu;
import java.util.Scanner;
/**
 *
 * @author va057280
 */
public class NacvikVstupu {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadej vstup1: ");
        String​ vstup1 = sc.nextLine();
        System.out.println("Zadej vstup2: ");
        String​ vstup2 = sc.nextLine();
        System.out.println(vstup1);
        System.out.println(vstup2);
    }
}

Znaky s diakritikou se načítají zkreslené, což mi ukazuje i debugger.
Dne 23. září jsi mi napsal: "Takže zatím je asi nejlepším řešením na ty příklady, kde se pracuje s uživatelovým vstupem použít projekt Java with Ant, snad to bude brzy opraveno". Zkusil jsem tedy tento jednoduchý kód pod projektem Java with Ant. Zdroják se zkompiloval (bez nahlášení chyb), ale nejde mi spustit. Nevím, asi mám někde něco nenastaveno (po čisté instalaci jsem nastavoval jen ty parametry, které v rámci kurzů byly doporučeny).

Dne 31. října jsi mi napsal: "Tak už se to pohnulo, na githubu už je PR, který to řeší, snad se to dostane do příští verze". Jakožto začátečníkovi mi není jasné co je "github", do příští verze čeho se to má dostat ....

Atramente,
nevím, zda jsi z Unicornu, a zda pláču na správném "hrobě". Jsem z celé situace tak trochu znechucen. Na ITnetwork bylo v prvních lekcích popisováno prostředí NetBeans, přešel jsem na toto prostředí. Zaplatil jsem si (on-line) kurzy, v rámci kterých jsou kontrolní příklady, které nejsem schopen plnit, pokud je v nich vyžadován vstup nějakých stringů.
Dokážete mi pomoct nebo odkázat na někoho?
Předem děkuji.
S pozdravem
Václav

 
Nahoru Odpovědět
26.11.2021 0:59
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Václav Pešek
Atrament:26.11.2021 1:34

Dne 31. října jsi mi napsal:..

To jsem ale nepsal tobě, ale Luborovi Peškovi. Divil jsem se, proč reaguješ ty.

Jde o to, že byla chyba v Netbeans, ta už byla objevena a opravena ve zdrojových kódech Netbeans, které jsou na tom Githubu a tato oprava bude k dispozici v nové verzi Netbeans 12.6, která vyjde během několika následujících dnů. Takže prostě jenom počkej těch pár dní, pak upgradni Netbeans na 12.6 a bude to fungovat.

Já vím je to pruda, když se člověk teprve učí programovat, narážet na takovéto problémy, ale to už tak nějak k tomu programování patří, skoro nikdy nic nefunguje tak, jak by si to člověk představoval. Takže to chce trpělivost :)

 
Nahoru Odpovědět
26.11.2021 1:34
Avatar
Odpovídá na Atrament
Václav Pešek:26.11.2021 9:44

Atramente, děkuji za promptní odpověď. Vážím si toho.
Jak prosím poznám, že vyšel upgrade NetBeans? Při jeho spuštění se nabídne aktualizace nebo to mám někde hlídat?
Venca

 
Nahoru Odpovědět
26.11.2021 9:44
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na Václav Pešek
Atrament:26.11.2021 10:13

Mělo by to přímo nabídnout update v Netbeans, ale to může mít zpoždění. pokud na to spěcháš tak si je můžeš najít třeba na twitteru a sledovat je, nebo pravidelně kontrolovat jejich stránky

 
Nahoru Odpovědět
26.11.2021 10:13
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.