RosenborgSupporterSoftware / staut

Automated counting of ticket sales for Rosenborg home games
4 stars 3 forks source link

Norske tegn i motstandernavn blir søppeltegn i Windows #10

Open havremunken opened 9 years ago

havremunken commented 9 years ago

Høres skikkelig sjefete ut å "assigne" denne til Vemundo, men det er vel kanskje det som skal til for å få notification. :)

Collectoren står og går på serveren min, og data kommer stadig ned. Ser veldig bra ut, men i natt plukket vi opp at seriekampene mot vif og Mjøndalen ble lagt ut for salg. De norske tegnene der så ikke helt sunne ut. For å unngå søl ved kopiering av teksten tok jeg et screenshot:

image

Dette handler vel bare om å håndtere encodingen av det du får fra BS riktig, antar jeg - og med riktig mener jeg "noe Windows skjønner bæret av"?

havremunken commented 9 years ago

Glemte å nevne, men det skjer da ikke overraskende også på filnavnene på xml-filene:

image

Selve eventinfo.properties-fila ser bra ut om man åpner den i Notepad eller f.eks. Sublime Text 3 som her:

image

larsjaas commented 9 years ago

java.io.* har visst problemer med unicode-tegn i filnavn. Det nyere java.nio.file.* APIet skal visst fungere bedre for sånt.

Relatert: http://stackoverflow.com/questions/1545625/java-cant-open-a-file-with-surrogate-unicode-values-in-the-filename

vemundo commented 9 years ago

Jeg håndterer disse tegnene spesielt når de parses ut av html-koden, så over i unicode går det bra.

Hm, i OSX ser også filnavnene riktig ut.

Ut ifra tegnene du får istedet ser det ut som en latin1 vs utf8 konverteringsfeil, dvs. tegn skrevet ut i utf8 tolkes som latin1 (eller omvent). Skal se nærmere på hvordan dette funker i Windows, har en maskin jeg kan teste på.

havremunken commented 9 years ago

Høres bra ut. Er jo det som er inne i eventinfo.properties jeg faktisk bruker til noe, men hvis det er en enkel fix så er jo det suverent.

vemundo commented 9 years ago

Fikk reprodusert problemet på min Windows 8.1. Der ble også innholdet i fila galt om jeg så på det med "type" i et DOS vindu. Men åpnet det med notepad som skjønte at innholdet var UTF8, så da kom det ut riktig. Så problemet er nok at filnavn og innhold er UTF8, men Windows ser det ikke sånn. Er litt usikker på hvilke tegnesett som faktisk er i bruk, leste noe som tydet på at Windows bruker ulike tegnsett for DOS/kommandolinje delen og den grafiske delen, så du er litt damned om du bruker tegn utenfor standard ASCII muligens, ie det blir galt enten her eller der. Vet ikke om det stemmer. En mulig fiks er jo bare å droppe nordiske tegn i filnavnet og erstatte med "engelske" varianter, men beholde nordiske tegn inne i fila.

Java skal egentlig selv forstå hvilket tegnsett som er satt på den platformen den kjører og forholde seg til det, men mulig dette ikke funker for den gamle "File" API delen og filnavn. Skal teste noen varianter (og det nyere APIet som er nevnt i posten Lars lenket til), men drar på ferie om et døgn og blir borte 2 uker.

havremunken commented 9 years ago

Litt seint, men god ferie! :) Filene kommer jo ned så dette lever vi lett med inntil videre.

havremunken commented 9 years ago

Ser ut som det lager litt slit at Glimt har en skråstrek i navnet sitt.

INFO: Downloading into: .\archive\2015_LEAGUE_14_Bodø\Glimt_438535\438535_Bodø \Glimt_2015-10-02T19-47.xml java.nio.file.NoSuchFileException: .\archive\2015_LEAGUE_14_Bodø\Glimt_438535\4 38535_Bodø\Glimt_2015-10-02T19-47.xml at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source) at java.nio.file.Files.newByteChannel(Unknown Source) at java.nio.file.Files.createFile(Unknown Source) at staut.Collector.download(Collector.java:184) at staut.CollectAvailabilityTask.downloadAvailability(CollectAvailabilit yTask.java:103) at staut.CollectAvailabilityTask.run(CollectAvailabilityTask.java:74) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Noe kjapt vi kan gjøre med dette, @vemundo ? Billettsalget er i gang og trådstarterne er på meg. ;)

vemundo commented 9 years ago

Jeg har pushet en patch nå som iallefall fikser problemet i min sandkasse. Fikset også et par andre problemer rundt tolkning av eventkoder for EL kamper (som var endret litt fra kvalifiseringskampene som ble kaldt "EC") og håndtering av eventnavn med space i motstandernavnet "St. Etienne" og i tillegg paranteser med ekstrainfo bak. Dette må bare patches hver gang vi oppdager flere varianter av patterns for dette, da vi ikke har noen spec for hva de kan og ikke kan skrive hvor i navn og koder.

On Fri, Oct 2, 2015 at 7:55 PM, Rune Jacobsen notifications@github.com wrote:

Ser ut som det lager litt slit at Glimt har en skråstrek i navnet sitt.

INFO: Downloading into: .\archive\2015_LEAGUE_14_Bodø\Glimt_438535\438535_Bodø \Glimt_2015-10-02T19-47.xml java.nio.file.NoSuchFileException: .\archive\2015_LEAGUE_14_Bodø\Glimt_438535\4 38535_Bodø\Glimt_2015-10-02T19-47.xml at sun.nio.fs.WindowsException.translateToIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsException.rethrowAsIOException(Unknown Source) at sun.nio.fs.WindowsFileSystemProvider.newByteChannel(Unknown Source) at java.nio.file.Files.newByteChannel(Unknown Source) at java.nio.file.Files.createFile(Unknown Source) at staut.Collector.download(Collector.java:184) at staut.CollectAvailabilityTask.downloadAvailability(CollectAvailabilit yTask.java:103) at staut.CollectAvailabilityTask.run(CollectAvailabilityTask.java:74) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask.runAndReset(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. access$301(Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask. run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

Noe kjapt vi kan gjøre med dette, @vemundo https://github.com/vemundo ? Billettsalget er i gang og trådstarterne er på meg. ;)

— Reply to this email directly or view it on GitHub https://github.com/RosenborgSupporterSoftware/staut/issues/10#issuecomment-145102729 .

havremunken commented 9 years ago

Funker som snus! Måtte fikse litt på Ingest-programmet også, da ifm. at det nå bytter ut / i klubbnavn med _ i forhold til å hente logo for bruk i grafikken.

Et problem jeg oppfattet men bare fikset selv er at klubbnavnet havnet i databasen som Bodø\/Glimt. En escaped slash som jeg ikke tok hensyn til. Får se hvordan denne blir løst etterhvert.

vemundo commented 9 years ago

Hmm, med patchen så skal / byttes ut med en tom streng for filnavn. Jeg oppdaget også Bodø\/Glimt i eventinfo-fila og fikset det sånn at all escaping med backslash blir fjernet. Så om du hadde startet nedlasting helt fra scratch for den kampen så ville du fått Bodø/Glimt som opponent i eventinfo.

  1. okt. 2015 17:33 skrev "Rune Jacobsen" notifications@github.com:

Funker som snus! Måtte fikse litt på Ingest-programmet også, da ifm. at det nå bytter ut / i klubbnavn med _ i forhold til å hente logo for bruk i grafikken.

Et problem jeg oppfattet men bare fikset selv er at klubbnavnet havnet i databasen som Bodø\/Glimt. En escaped slash som jeg ikke tok hensyn til. Får se hvordan denne blir løst etterhvert.

— Reply to this email directly or view it on GitHub https://github.com/RosenborgSupporterSoftware/staut/issues/10#issuecomment-145257121 .