Encode String to UTF-8

后端 未结 11 1810
忘掉有多难
忘掉有多难 2020-11-22 08:33

I have a String with a \"ñ\" character and I have some problems with it. I need to encode this String to UTF-8 encoding. I have tried it by this way, but it doesn\'t work:

相关标签:
11条回答
  • 2020-11-22 09:16

    I have use below code to encode the special character by specifying encode format.

    String text = "This is an example é";
    byte[] byteText = text.getBytes(Charset.forName("UTF-8"));
    //To get original string from byte.
    String originalString= new String(byteText , "UTF-8");
    
    0 讨论(0)
  • 2020-11-22 09:19

    In a moment I went through this problem and managed to solve it in the following way

    first i need to import

    import java.nio.charset.Charset;
    

    Then i had to declare a constant to use UTF-8 and ISO-8859-1

    private static final Charset UTF_8 = Charset.forName("UTF-8");
    private static final Charset ISO = Charset.forName("ISO-8859-1");
    

    Then I could use it in the following way:

    String textwithaccent="Thís ís a text with accent";
    String textwithletter="Ñandú";
    
    text1 = new String(textwithaccent.getBytes(ISO), UTF_8);
    text2 = new String(textwithletter.getBytes(ISO),UTF_8);
    
    0 讨论(0)
  • 2020-11-22 09:19

    A quick step-by-step guide how to configure NetBeans default encoding UTF-8. In result NetBeans will create all new files in UTF-8 encoding.

    NetBeans default encoding UTF-8 step-by-step guide

    • Go to etc folder in NetBeans installation directory

    • Edit netbeans.conf file

    • Find netbeans_default_options line

    • Add -J-Dfile.encoding=UTF-8 inside quotation marks inside that line

      (example: netbeans_default_options="-J-Dfile.encoding=UTF-8")

    • Restart NetBeans

    You set NetBeans default encoding UTF-8.

    Your netbeans_default_options may contain additional parameters inside the quotation marks. In such case, add -J-Dfile.encoding=UTF-8 at the end of the string. Separate it with space from other parameters.

    Example:

    netbeans_default_options="-J-client -J-Xss128m -J-Xms256m -J-XX:PermSize=32m -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dfile.encoding=UTF-8"

    here is link for Further Details

    0 讨论(0)
  • 2020-11-22 09:20

    In Java7 you can use:

    import static java.nio.charset.StandardCharsets.*;
    
    byte[] ptext = myString.getBytes(ISO_8859_1); 
    String value = new String(ptext, UTF_8); 
    

    This has the advantage over getBytes(String) that it does not declare throws UnsupportedEncodingException.

    If you're using an older Java version you can declare the charset constants yourself:

    import java.nio.charset.Charset;
    
    public class StandardCharsets {
        public static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1");
        public static final Charset UTF_8 = Charset.forName("UTF-8");
        //....
    }
    
    0 讨论(0)
  • 2020-11-22 09:24

    A Java String is internally always encoded in UTF-16 - but you really should think about it like this: an encoding is a way to translate between Strings and bytes.

    So if you have an encoding problem, by the time you have String, it's too late to fix. You need to fix the place where you create that String from a file, DB or network connection.

    0 讨论(0)
提交回复
热议问题