spring-io / spring-asciidoctor-backends

A backend for Asciidoctor used to produce Spring styled HTML
Apache License 2.0
77 stars 15 forks source link

Encoding issues on Windows #25

Closed leonard84 closed 1 year ago

leonard84 commented 3 years ago

Hi,

I wanted to give this new backend a try, but I've run into file encoding issues. The standard html5 backend works without problems.

Tested with:

I also tried explicitly setting the asciidoctor :encoding: UTF-8 attribute, either on the task config or in the file, but it didn't help.

My guess, is that this backend, doesn't correctly set the expected encoding to UTF-8 and assumes the system default Windows-1252 instead.

> Task :asciidoctor
Converting C:\dev\github\spock\docs\getting_started.adoc
Mõr 27, 2021 9:43:32 PM org.asciidoctor.jruby.internal.JRubyAsciidoctor convertFile
SCHWERWIEGEND: (CompatibilityError) incompatible character encodings: UTF-8 and Windows-1252
Exception in thread "main" org.asciidoctor.gradle.remote.AsciidoctorRemoteExecutionException: Error running Asciidoctor whilst attempting to process C:\dev\github\spock\docs\getting_started.adoc using backend spring-html
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_convertFiles_closure4.doCall(AsciidoctorJavaExec.groovy:91)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:263)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041)
        at groovy.lang.Closure.call(Closure.java:405)
        at groovy.lang.Closure.call(Closure.java:421)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2330)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2315)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2368)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.convertFiles(AsciidoctorJavaExec.groovy:82)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.access$1(AsciidoctorJavaExec.groovy)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_run_closure3.doCall(AsciidoctorJavaExec.groovy:73)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_run_closure3.call(AsciidoctorJavaExec.groovy)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2330)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2315)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2356)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.run(AsciidoctorJavaExec.groovy:68)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec.main(AsciidoctorJavaExec.groovy:49)
Caused by: org.asciidoctor.jruby.internal.AsciidoctorCoreException: org.jruby.exceptions.EncodingError$CompatibilityError: (CompatibilityError) incompatible character encodings: UTF-8 and Windows-1252
        at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:400)
        at org.asciidoctor.jruby.internal.JRubyAsciidoctor.convertFile(JRubyAsciidoctor.java:366)
        at org.asciidoctor.gradle.remote.AsciidoctorJavaExec$_convertFiles_closure4.doCall(AsciidoctorJavaExec.groovy:87)
        ... 22 more
Caused by: org.jruby.exceptions.EncodingError$CompatibilityError: (CompatibilityError) incompatible character encodings: UTF-8 and Windows-1252
        at org.jruby.RubyString.+(org/jruby/RubyString.java:1180)
        at RUBY.postprocess(uri:classloader:/gems/spring-asciidoctor-backends-0.0.0/lib/spring-asciidoctor-backends/spring-html5-converter.rb:76)
        at RUBY.convert(uri:classloader:/gems/spring-asciidoctor-backends-0.0.0/lib/spring-asciidoctor-backends/spring-html5-converter.rb:44)
        at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:951)
        at RUBY.convert(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:118)
        at RUBY.convert_file(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183)
        at org.jruby.RubyIO.open(org/jruby/RubyIO.java:1158)
        at RUBY.convert_file(uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183)
toedter commented 3 years ago

same here, even though ALL of my files are encoded with UTF-8.

MichaelScofieldAndSara commented 3 years ago

up

toedter commented 3 years ago

I found a workaround: gradlew asciidoctor -Dfile.encoding=UTF-8 works under Windows

mikomatic commented 3 years ago

I'm also having this issue with the asciidoctor-maven-plugin (all files are UTF-8) on windows. Indeed the current workaround seems to add a JVM option -Dfile.encoding=UTF-8

wilkinsona commented 1 year ago

Superseded by #80.