Ik heb een probleem en ik krijg het niet opgelost. Een gebruiker van mijn programma (AVCHDCoder) heeft zijn windows versie in het Hebreeuws. Dit is zijn pad naar Documents:
C:\Users\עומר מעין\Documents\
Het probleem ontstaat op het moment dat ik met ProcessBuilder een exe aanroep. Er komt geen resultaat terug zodra het Hebreeuws in de Structuur staat.
Dit is de code:
De aanroep gaat als volgt:
ExecuteCommands ec = new ExecuteCommands("\"D:\\tools\\MediaInfo.exe\"", "\"--Inform=file://D:\\tools\\input.txt\"", "\"C:\\Users\\עומר מעין\\Documents\\Film.mkv\"");
Zodra hij de eerste for loop uitvoert klopt het al niet helemaal. De hebreeuwse tekst word niet correct afgedrukt. Dit resulteerd in zoiets: ?¥○? ○?← of vraagtekens. En zodra de while loop uitgevoerd word komt er geen resultaat. Vermijd ik Hebreeuwse tekst dan werkt het perfect en krijg ik een hoop resultaten.
Ik heb de Virtual Machine al gestart met UTF-8/16 en zelfs de Hebreewse encoding set. In geen gevallen word de tekst correct afgedrukt. En in geen gevallen krijg ik resultaat in de while loop.
Als ik met de debugger erdoorheen loop dan kloppen alle strings perfect. De strings bevatten gewoon de Hebreeuwse tekens en ook labels in de GUI laten de tekens correct zien.
Ik krijg niet gevonden hoe ik het opgelost krijg. Het gaat uiteraard ook fout bij andere talen zoals japans ed. Al heb ik dat niet geprobeerd. Wie kan mij hier meer over vertellen en hoe krijg ik dit opgelost?
PS: Het hebreews geschrift is van rechts naar links
C:\Users\עומר מעין\Documents\
Het probleem ontstaat op het moment dat ik met ProcessBuilder een exe aanroep. Er komt geen resultaat terug zodra het Hebreeuws in de Structuur staat.
Dit is de code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| public ExecuteCommands(String... parameters){ try { for(String i: parameters){ System.out.println(i); } pb = new ProcessBuilder(parameters).start(); InputStream is = pb.getInputStream(); InputStreamReader isr = new InputStreamReader(is); br = new BufferedReader(isr); String line; while ((line = br.readLine()) != null) { arraylist.add(line); System.out.println(line); } br.close(); } catch (IOException ex) { //Error } } |
De aanroep gaat als volgt:
ExecuteCommands ec = new ExecuteCommands("\"D:\\tools\\MediaInfo.exe\"", "\"--Inform=file://D:\\tools\\input.txt\"", "\"C:\\Users\\עומר מעין\\Documents\\Film.mkv\"");
Zodra hij de eerste for loop uitvoert klopt het al niet helemaal. De hebreeuwse tekst word niet correct afgedrukt. Dit resulteerd in zoiets: ?¥○? ○?← of vraagtekens. En zodra de while loop uitgevoerd word komt er geen resultaat. Vermijd ik Hebreeuwse tekst dan werkt het perfect en krijg ik een hoop resultaten.
Ik heb de Virtual Machine al gestart met UTF-8/16 en zelfs de Hebreewse encoding set. In geen gevallen word de tekst correct afgedrukt. En in geen gevallen krijg ik resultaat in de while loop.
Als ik met de debugger erdoorheen loop dan kloppen alle strings perfect. De strings bevatten gewoon de Hebreeuwse tekens en ook labels in de GUI laten de tekens correct zien.
Ik krijg niet gevonden hoe ik het opgelost krijg. Het gaat uiteraard ook fout bij andere talen zoals japans ed. Al heb ik dat niet geprobeerd. Wie kan mij hier meer over vertellen en hoe krijg ik dit opgelost?
PS: Het hebreews geschrift is van rechts naar links
Ruisende versterker: schakel je subwoofer in.