You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Liwei Lin (JIRA)" <ji...@apache.org> on 2016/01/17 10:03:39 UTC

[jira] [Created] (PARQUET-430) Change to use Locale parameterized version of String.toUpperCase()/toLowerCase

Liwei Lin created PARQUET-430:
---------------------------------

             Summary: Change to use Locale parameterized version of String.toUpperCase()/toLowerCase
                 Key: PARQUET-430
                 URL: https://issues.apache.org/jira/browse/PARQUET-430
             Project: Parquet
          Issue Type: Bug
          Components: parquet-mr
    Affects Versions: 1.8.0, 1.8.1
            Reporter: Liwei Lin
            Assignee: Liwei Lin
            Priority: Minor
             Fix For: 1.9.0


A String is being converted to upper or lowercase, using the platform's default encoding. This may result in improper conversions when used with international characters.

For instance, "TITLE".toLowerCase() in a Turkish locale returns "tıtle", where 'ı' -- without a dot -- is the LATIN SMALL LETTER DOTLESS I character. To obtain correct results for locale insensitive strings, we'd better use toLowerCase(Locale.ENGLISH).

For more information on this, please see:
- http://stackoverflow.com/questions/11063102/using-locales-with-javas-tolowercase-and-touppercase
- http://lotusnotus.com/lotusnotus_en.nsf/dx/dotless-i-tolowercase-and-touppercase-functions-use-responsibly.htm
- http://java.sys-con.com/node/46241

This ticket proposes to change our use of String.toUpperCase()/toLowerCase() to String.toUpperCase(Locale.*ENGLISH*)/toLowerCase(*Locale.ENGLISH*)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)