Tag: utf 8

在java中检测中文字符

使用Java如何检测String是否包含中文字符? String chineseStr = “已下架” ; if (isChineseString(chineseStr)) { System.out.println(“The string contains Chinese characters”); }else{ System.out.println(“The string contains Chinese characters”); } 你能帮我解决一下这个问题吗?

为clojure源文件启用UTF-8编码

我正在开发一个涉及maven,java和clojure的项目。 我面临的问题是,我在我的clojure源文件中有一些UTF-8字符,因为我的源代码没有被java编译器正确解释,我通过设置环境变量JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8得到它的工作JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8 ,但我想要的是通过MAVEN传递这个属性。 我已经尝试过设置MAVEN_OPTS=-Dfile.encoding但这似乎不起作用。 我也试过为maven的编译器插件设置配置……这样的事情: -Dfile.encoding=UTF8 这也不起作用。 我做错了什么,还是有别的办法。 谢谢, RD 好的,这里有更多细节。 这是我的父母pom, org.apache.maven.plugins maven-compiler-plugin 1.5 1.5 UTF-8 <! also tried UTF8 孩子的pom没有什么有趣的,除了…… src/main/clojure ;; clojure代码片段会导致问题 (let [char “대”] (not (empty? (filter #(s/contains? % char) ))) ;; The list is always empty because I never find a match if I do not set the env. variable

java utf8编码 – char,字符串类型

public class UTF8 { public static void main(String[] args){ String s = “ヨ”; //0xFF6E System.out.println(s.getBytes().length);//length of the string System.out.println(s.charAt(0));//first character in the string } } 输出: 3ヨ 请帮我理解这个。 试图了解utf8编码在java中的工作原理。 根据char char的 java doc定义:char数据类型是单个16位Unicode字符。 这是否意味着java中的char类型只能支持那些可以用2个字节而不是更多的字节表示的unicode字符? 在上面的程序中,为该字符串分配的字节数为3,但在第三行中返回第一个字符(java中为2个字节)可以保存3个字节长的字符? 这里真的很困惑? 在java / general中对这个概念的任何好的参考将非常感激。

在Java中将UTF-8转换为ISO-8859-1

我正在阅读XML文档(UTF-8)并最终使用ISO-8859-1在网页上显示内容。 正如预期的那样,有一些字符没有正确显示,例如“ , –和’ (它们显示为?)。 是否可以将这些字符从UTF-8转换为ISO-8859-1? 这是我编写的代码片段,用于尝试此操作: BufferedReader br = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), “UTF-8”)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = br.readLine()) != null) { sb.append(line); } br.close(); byte[] latin1 = sb.toString().getBytes(“ISO-8859-1”); return new String(latin1); 我不太确定会出现什么问题,但是我认为它是readLine()引起了悲伤(因为字符串将是Java / UTF-16编码的?)。 我尝试的另一种变化是用latin1替换 byte[] latin1 = new String(sb.toString().getBytes(“UTF-8”)).getBytes(“ISO-8859-1”); 我已经读过以前关于这个主题的post,我正在学习。 在此先感谢您的帮助。

使用声明的encoding = utf-8 – Java从xml中删除非UTF-8字符

我必须在Java中处理这种情况: 我从声明为encoding = utf-8的客户端获取XML格式的请求。 不幸的是,它可能不包含utf-8字符,并且需要从我这边的xml中删除这些字符(遗留)。 让我们考虑这个无效XML包含£(磅)的示例。 1)我得到xml作为带有£的java字符串(我现在没有访问接口,但我可能得到xml作为java字符串)。 我可以使用replaceAll(£,“”)来摆脱这个角色吗? 任何潜在的问题? 2)我得到xml作为字节数组 – 在这种情况下如何安全地处理这个操作?

为什么Java char使用UTF-16?

最近我读了很多关于unicode代码点以及它们如何随着时间的推移而演变的事情,并确定我也阅读了http://www.joelonsoftware.com/articles/Unicode.html 。 但是我无法找到Java使用UTF-16作为char的真正原因。 例如,如果我的字符串包含1024个字母的ASCII范围字符串字符串。 它意味着1024 * 2 bytes ,相当于它将消耗的2KB字符串内存。 因此,如果Java base char是UTF-8,那么它只有1KB的数据。 即使字符串有任何需要2字节的字符,例如10字符“字”,它自然会增加内存消耗的大小。 (1014 * 1 byte) + (10 * 2 bytes) = 1KB + 20 bytes 结果不是那个明显的1KB + 20 bytes VS. 2KB 1KB + 20 bytes VS. 2KB我不是说关于ASCII但我对此的好奇心为什么它不是UTF-8,它只是照顾多字节字符。 UTF-16在任何具有大量非多字节字符的字符串中看起来像浪费内存。 这背后有什么好理由吗?

以编程方式将txt文件从ANSI转换为UTF-8

我需要你的帮助。 我正在研究一个将数据从txt文件转换到数据库的java应用程序,问题是该文件具有ANSI编码,我无法更改,因为它来自我的应用程序外部,当我将数据写入数据库我得到了一些“???” 内。 我的问题是,如何将我从文件中读取的数据从ANSI转换为UTF-8,它可以处理那些已经满足的符号。 我已经尝试过Byte []到String转换但它没有用。

UTF-8使用Tomcat编码servlet表单提交

我试图将一个包含unicode字符的简单表单发布到servlet操作。 在Jetty上,一切都没有障碍。 在Tomcat服务器上,utf-8字符会被破坏。 我得到的最简单的案例: 形成: ` ` 行动: class MyAction extends ActionSupport { public void setData(String data) { // data is already mangled here in Tomcat } } 我在server.xml中的上有URIEncoding =“UTF-8” 动作的第一个filter调用request.setCharacterEncoding(“UTF-8”); 包含表单的页面的内容类型是“text / html; charset = UTF-8” 在表单中添加“accept-charset”没有任何区别 我能使其工作的唯一两种方法是使用Jetty或将其切换为method =“get”。 这两个都导致角色没有问题。

汉字在Mac终端显示为问号

我试图使用Java文件从数据库中检索一些UTF-8单编码中文字符。 当我这样做时,字符将作为问号返回。 但是,当我显示数据库中的字符时(使用select * from … ),字符会正常显示。 当我在包含中文字符的Java文件中打印字符串时,它们也会正常打印。 我在Eclipse中遇到了这个问题:当我运行程序时,字符被打印为问号。 但是,当我以UTF-8格式保存Java文件时,此问题得以解决。 在终端中运行“locale”当前返回: LANG=”en_GB.UTF-8″ LC_COLLATE=”en_GB.UTF-8″ LC_CTYPE=”en_GB.UTF-8″ LC_MESSAGES=”en_GB.UTF-8″ LC_MONETARY=”en_GB.UTF-8″ LC_NUMERIC=”en_GB.UTF-8″ LC_TIME=”en_GB.UTF-8″ LC_ALL= 我也尝试使用这个编译我的java文件: javac -encoding UTF-8 [java file] 但是,输出仍然是问号。 奇怪的是它有时只会显示角色。 有没有人对此有解释? 或者甚至更好,如何解决这个问题,以便正确显示字符?

在Windows控制台中从Java代码问题中打印出unicode

我在Windows控制台中打印出unicode符号时遇到问题。 这是打印出unicode符号值的java代码; System.out.print(“\u22A2 “); 当我在Eclipse中使用UTF-8编码设置运行程序时,问题不存在,但是当涉及到Windows控制台时,符号会被问号替换。 以下是为了尝试克服这个问题,没有成功; 将Windows控制台的字体更改为Lucida Console。 每次运行Windows控制台时,我都会更改编码设置,即使用chcp 65001 我尝试了几次的额外步骤是使用参数运行java文件,即java -Dfile.encoding=UTF-8 Filter (其中“Filter”是类的名称)