Cataclysm
Cataclysm

Reputation: 8548

using UTF-8 characters in JAVA variable-names

I would like to know that can I use my native language characters (or String) as JAVA variable names ? So, I had tested as below with Myanmar Unicode.

    public static void main(final String[] args) {
    String ဆဆဆ = "မောင်မောင်";
    System.out.println("ကောင်းသောနေ.ပါ " + ဆဆဆ);
}

This code show my successful message as 'ကောင်းသောနေ.ပါ မောင်မောင်'. But in below code with another variable name (it also my native language String).....

    public static void main(final String[] args) {
    String တက်စတင်း = "မောင်မောင်";
    System.out.println("ကောင်းသောနေ.ပါ " + တက်စတင်း);
}

that produce compile time error in my Ecliplse IDE.

Multiple markers at this line - Syntax error on tokens, delete these tokens - Got an exception - Unexpected character 0x103a in identifier

Any suggestion ? Why would this problem has occured ? Thanks for reading my question patiently.......

Upvotes: 6

Views: 4619

Answers (5)

Njol
Njol

Reputation: 3279

Java 6 merely supports Unicode 4.0, a quite old version of Unicode which doesn't include Myanmar (or at least only rudimentary). Extended Myanmar support was added to Unicode 5.1, which is supported in Java 7.

To resolve this issue, install JDK 7 if you haven't already, and configure your Eclipse project to compile as Java 7 (Project->Properties->Java Compiler). Please note that code compiled as Java 7 cannot be run on Java 6 or lower.

Upvotes: 7

peter.petrov
peter.petrov

Reputation: 39437

I am not sure but try setting this OS environment
variable JAVA_TOOL_OPTIONS and see if it helps.

C:\Work>echo %JAVA_TOOL_OPTIONS%
-Dfile.encoding=UTF8

Upvotes: 1

Alexei Kaigorodov
Alexei Kaigorodov

Reputation: 13515

You can use your native language characters as JAVA identifiers if that characters are letters or digits (first character may by a letter only). To make sure if a character is a letter or digit, use Character.isLetter and Character.isDigit.

Be careful to use encodings which support your characters. Best choice is UTF-8.

In Strings, you can use any characters.

Upvotes: 1

Denis Santos
Denis Santos

Reputation: 1

How about using

Charset.forName("UTF-8").encode(myString)

Upvotes: -4

AlexR
AlexR

Reputation: 115328

Configure charset in your IDE. If you are using Eclipse go to properties and search for charset or encoding. Configure it to be UTF-8 for your java editor.

Upvotes: 4

Related Questions