Oh, that makes it clear that UTF-8 is expected, and would presumably also
account for utf-8 working by default (i.e without any configuration) in
Flex compiler, in terms of aiming for consistency.
OK, I will look into that next week some time, to see if I can address that
too.

Thanks,
-Greg


On Fri, Apr 7, 2023 at 7:50 AM Josh Tynjala <joshtynj...@bowlerhat.dev>
wrote:

> According to the compiler docs, .properties files are assumed to be UTF-8.
>
>
> https://github.com/apache/royale-compiler/blob/apache-royale-0.9.9/compiler/src/main/java/org/apache/royale/compiler/internal/resourcebundles/PropertiesFileParser.java#L98-L100
>
> --
> Josh Tynjala
> Bowler Hat LLC <https://bowlerhat.dev>
>
>
> On Wed, Apr 5, 2023 at 7:21 PM Greg Dove <greg.d...@gmail.com> wrote:
>
> > @Josh:
> > That sounds good to me, and makes things easier compared to what I was
> > considering.
> >
> >
> > @Alex:
> > I was going to compare the behavior of the most recent Flex compiler and
> > the Royale compiler to understand/avoid issues, but obviously only with
> swf
> > vs. swf.
> > Then check for any difference in royale compiler swf vs. js.
> >
> > For Resource properties files I had only found one very. old 'known
> issue'
> > mention from the Flex 2 compiler which said:
> >
> >    - All strings in properties files must be Latin-1 or UTF-8 encoded.
> >
> > I don't have experience using anything other than utf-8 throughout the
> Flex
> > years in these cases. The Flex 2 issue comment above seems to be quite
> > restrictive for properties files. However that may have been 'fixed' in
> > Flex 3 or Flex 4 compilers to allow more.
> > I do suspect that even in more recent compilers it ought to have been
> utf-8
> > by default though, I believe that is what we were seeing for the
> migration
> > project I was involved with, where the utf-8 encoding setting was needed
> on
> > the Royale compiler but not on the old Flex one.. My intention however
> was
> > to try to verify that before making any changes. If we do what Josh is
> > suggesting then I would skip that work and just go with the explicit (but
> > default Utf8) config setting.
> >
> >
> >
> > On Thu, Apr 6, 2023 at 11:07 AM Josh Tynjala <joshtynj...@bowlerhat.dev>
> > wrote:
> >
> > > Maybe a new compiler option that will let folks choose an encoding
> would
> > be
> > > best. Default to a sane UTF-8, and let people opt into playing with
> weird
> > > encodings, if they need it.
> > >
> > > --
> > > Josh Tynjala
> > > Bowler Hat LLC <https://bowlerhat.dev>
> > >
> > >
> > > On Wed, Apr 5, 2023 at 3:58 PM Alex Harui <aha...@adobe.com.invalid>
> > > wrote:
> > >
> > > > There is a chance this will break someone on Windows where the file
> > > system
> > > > is not UTF8 and the data includes Windows-encoded characters that
> > > reference
> > > > a file or something like that.
> > > >
> > > > IIRC, that's why I decided to live with JAVA_TOOL_OPTIONS, so we
> don't
> > > > make a change that can't be overridden.
> > > >
> > > > -Alex
> > > >
> > > > On 4/5/23, 1:47 PM, "Greg Dove" <greg.d...@gmail.com <mailto:
> > > > greg.d...@gmail.com>> wrote:
> > > >
> > > >
> > > > EXTERNAL: Use caution when clicking on links or opening attachments.
> > > >
> > > >
> > > >
> > > >
> > > > Nice find, Josh.
> > > >
> > > >
> > > > I was intending to look into some similar issue with resource*
> > > > .properties *files
> > > > as well.
> > > > We have definitely had the need to set utf8 file.encoding in
> > > > JAVA_TOOL_OPTIONS to get that to work the same as flex compiler did
> for
> > > > royale compiler (JS in particular, but I will try to check if royale
> > swf
> > > is
> > > > at odds also), in some work over the last 12-18 months.
> > > > This is just a mention, for your awareness, not a request for you to
> do
> > > > anything. I hope to find some time to spend on Royale work in the 2nd
> > > half
> > > > of April, so I will try to look into it then.
> > > >
> > > >
> > > > ---------- Forwarded message ---------
> > > > From: <joshtynj...@apache.org <mailto:joshtynj...@apache.org>>
> > > > Date: Thu, Apr 6, 2023 at 8:31 AM
> > > > Subject: [royale-compiler] branch develop updated: JSRoyaleEmitter:
> > when
> > > > reading plain text files for [Embed] metadata, read as UTF-8 instead
> of
> > > > system default
> > > > To: comm...@royale.apache.org <mailto:comm...@royale.apache.org> <
> > > > comm...@royale.apache.org <mailto:comm...@royale.apache.org>>
> > > >
> > > >
> > > >
> > > >
> > > > This is an automated email from the ASF dual-hosted git repository.
> > > >
> > > >
> > > > joshtynjala pushed a commit to branch develop
> > > > in repository
> https://gitbox.apache.org/repos/asf/royale-compiler.git
> > <
> > > > https://gitbox.apache.org/repos/asf/royale-compiler.git>
> > > >
> > > >
> > > >
> > > >
> > > > The following commit(s) were added to refs/heads/develop by this
> push:
> > > > new 5669b4714 JSRoyaleEmitter: when reading plain text files for
> > > > [Embed] metadata, read as UTF-8 instead of system default
> > > > 5669b4714 is described below
> > > >
> > > >
> > > > commit 5669b4714118c1e2c2edf0e01360a39002e78033
> > > > Author: Josh Tynjala <joshtynj...@apache.org <mailto:
> > > > joshtynj...@apache.org>>
> > > > AuthorDate: Wed Apr 5 13:31:34 2023 -0700
> > > >
> > > >
> > > > JSRoyaleEmitter: when reading plain text files for [Embed] metadata,
> > > > read as UTF-8 instead of system default
> > > >
> > > >
> > > > This matches the behavior of reading other text files, and avoids the
> > > > need for JAVA_TOOL_OPTIONS with file.encoding
> > > > ---
> > > > .../royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java |
> > > > 2 +-
> > > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > > >
> > > >
> > > > diff --git
> > > >
> > > >
> > >
> >
> a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
> > > >
> > > >
> > >
> >
> b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
> > > > index 10bc04b4e..2f67e14f5 100644
> > > > ---
> > > >
> > > >
> > >
> >
> a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
> > > > +++
> > > >
> > > >
> > >
> >
> b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/codegen/js/royale/JSRoyaleEmitter.java
> > > > @@ -1097,7 +1097,7 @@ public class JSRoyaleEmitter extends
> > JSGoogEmitter
> > > > implements IJSRoyaleEmitter
> > > > File file = new File(FilenameNormalization.normalize(source));
> > > > try {
> > > > String newlineReplacement = "\\\\n";
> > > > - String s = FileUtils.readFileToString(file);
> > > > + String s = FileUtils.readFileToString(file,
> > > > "UTF-8");
> > > > s = s.replaceAll("\n", "__NEWLINE_PLACEHOLDER__");
> > > > s = s.replaceAll("\r", "__CR_PLACEHOLDER__");
> > > > s = s.replaceAll("\t", "__TAB_PLACEHOLDER__");
> > > >
> > > >
> > > >
> > > >
> > >
> >
>

Reply via email to