Tag: 编码

Java将int隐式转换为byte

我即将开始处理需要读取字节和创建字符串的事情。 正在读取的字节代表UTF-16字符串。 所以只是为了测试我想要将UTF-16编码的简单字节数组转换为字符串。 数组中的前2个字节必须表示字节序,因此必须是0xff 0xfe或0xfe 0xff。 所以我尝试按如下方式创建我的字节数组: byte[] bytes = new byte[] {0xff, 0xfe, 0x52, 0x00, 0x6F, 0x00}; 但是我收到一个错误,因为0xFF和0xFE太大而无法放入一个字节(因为字节是用Java签名的)。 更准确地说,错误是int无法转换为字节。 我知道我可以使用强制转换显式地从int转换为byte并获得所需的结果,但这不是我的问题。 为了尝试一些东西,我创建了一个String并调用了getBytes(“UTF-16”)然后打印了数组中的每个字节。 输出有点令人困惑,因为前两个字节是0xFFFFFFFE 0xFFFFFFFF,后跟0x00 0x52 0x00 0x6F。 (显然这里的字节顺序与我上面尝试创建的不同,但这并不重要)。 使用此输出我决定尝试以相同的方式创建我的字节数组: byte[] bytes = new byte[] {0xffffffff, 0xfffffffe, 0x52, 0x00, 0x6F, 0x00}; 奇怪的是,它工作得很好。 所以我的问题是,为什么Java允许0xFFFFFF80或更大的整数值自动转换为没有显式强制转换的字节,但任何等于或大于0x80的东西都需要显式强制转换?

JAVA – GPS RECEPTOR在控制台中发送奇怪/编码的帧

我有一个GPS接收器,它给我发送了NMEA帧。 我的代码检索这些代码,但forms非常奇怪: 我正在使用PuTTY来查看我的受体接收到的NMEA帧,并且没有问题。 编辑 – 这是我正在使用的代码: public class GPSFrame extends Observable implements Runnable { static Thread myThread=null; static BufferedReader br; static BufferedWriter wr; static PrintWriter out; static InputStreamReader isr; static OutputStreamWriter osw; static java.io.RandomAccessFile port; /** CONSTRUCTOR **/ public GPSFrame() { myThread=new Thread(this); } public void start() { try { port=new java.io.RandomAccessFile(“COM5″,”rwd”); port.writeBytes(“\r\n”); port.writeBytes(“c,31,0,0,5\r\n”); port.writeBytes(“T,1000,1\r\n”); […]

使用Eclipse和Maven进行Java编码

我经常看到编码出现问题。 因此,我已经写下了这个指令集来执行所有必需的操作,以使工作(使用编码)。 这个集合与Eclipse有关,但它也将引导maven设置。 在java文件中使用斯堪的纳维亚字母时,编码问题最成问题(åäö,它们在运行时具有实际意义)。 一个示例案例是在java文件中包含一个常量变量,该变量包含一个scandic字母,它用于标识传入流中的值(以UTF-8表示)。 底层操作系统也可能是Windows,默认情况下使用cp1252。 例如以下代码: @Test public void scandicTest() { System.out.println(“scandics: åäö”); } 当一切配置正确时(例如在eclipse中),运行此测试将产生: scandics: åäö 但是如果你通过Maven(从命令行或在eclipse => mvn测试中)运行它,你将拥有: scandics: 首先,需要在eclipse和maven pom.xml中更改编码,以正确读取和存储文件,并在保存文件/运行测试时使eclipse使用正确的编码。 但是,当Maven和生成的java代码处理传入流(编译并运行测试)时,即使读入的文件正确(包含scandic字母),java文件本身的常量值仍然会被破坏。 System Java仍然使用特定于操作系统的默认编码,即使其他所有内容都已正确设置。 因此,您无法在项目中配置所有内容,您也必须为OS-JVM执行此操作。

我正在使用一个程序来分析我的Java代码,我不理解错误或如何解决它

我正在使用马里兰大学的FindBug程序,它给了我这个错误。 我已经在很多平台上测试了我的代码并且它有效,所以为什么这个代码不好练习,我该怎么做才能改进它?

文件被加载错误的编码:android studio中的’UTF-8′

我的android工作室像这样疯了请帮忙? 文件被加载错误的编码:android studio中的’UTF-8′

FileUpload文件名编码

我已经有一段时间了,因为我正在敲打这个:多部分/混合内容。 @RequestPart(name=”view”) CoolView, @RequestPart(name=”files”) Part [] files 也使用spring(因为CommonsMultipartResolver失败也没关系): StandardServletMultipartResolver 现在的问题是,当上传具有US_ASCII字符之外的某些名称的文件时,服务器会将它们转换为奇怪的东西。 奇怪的是,我的意思是它将它们转换为ISO_8859_1,我想我已经设想了UTF-8编码可以想象到的地方。 -Dfile.encoding = UTF-8 LANG =“en_US.UTF-8”LC_ALL =“en_US.UTF-8” URIEncoding = UTF-8(在server.xml中的tomcat) CharacterEncodingFilter是第一个被拾取的filter 有趣的是,这只发生在我在azure linux机器上尝试这个时,本地一切都很好。 例如,我使用curl发送一些要上传的文件: curl -X POST -F “files=@Définition fonctionnalités.pdf” 在Controller中,我试图查看实际从Content-Disposition文件名中捕获的名称。 Définition fonctionnalités.pdf 在这一点上,我会接受任何建议。 感谢你

在HTTPServlet请求中编码UTF-8

这可能看起来像一个已经解决的问题,但事实并非如此,因为我已经完成了所有与UTF-8相关的问题,但没有一个解决方案对我有所帮助。 我正在使用JSON简单库向包含JSON对象的java servlet发送http请求。 我在Tomcat xml文件中添加了UTF-8编码 我的HTML页面支持UTF-8编码 我的数据库和我的所有表都是UTF-8编码的 我使用系统变量将JVM的默认编码更改为UTF-8(是的!这是我多么绝望) 这是我的调度员function: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding(“UTF-8”); AjaxParser cr = AjaxParser.ClientRequestFactory(); ClientRequest msg = cr.ParseClientAjax(request); HandleRequest HR = new HandleRequest(); HandleRequestStatus HRS = HR.HandleMessage(msg); AjaxResponseGenerator ARG = new AjaxResponseGenerator(); JSONObject jsonObj = ARG.HandleResponse(HRS); response.setCharacterEncoding(“UTF-8”); response.setContentType(“application/json”); PrintWriter out = response.getWriter(); System.out.println(jsonObj);// write the […]

无法通过JAVA API将带有ISO编码的xml写入Marklogic

我们尝试通过JAVA API将带有ISO编码的xml插入MarkLogic但是会收到此错误。 xml包含特殊字符,例如:注册商标符号 – ® Bad Request. Server Message: XDMP-DOCUTF8SEQ: Invalid UTF-8 escape sequence at line 14145 — document is not UTF-8 encoded. 码: DatabaseClient client = DatabaseClientFactory.newClient(IP, PORT, DATABASE_NAME, USERNAME, PWD, Authentication.DIGEST); // acquire the content InputStream xmlDocStream = XMLController.class.getClassLoader() .getResourceAsStream(“path to xml file”); // create a manager for XML documents XMLDocumentManager xmlDocMgr = […]

在使用HtlmCleaner的Android上,非英语字符解码不正确

我正在使用HtmlCleaner在Android中搜索ISO-8859-1编码的网站。 我在外部jar文件中实现了这个,我将其导入到我的Android应用程序中。 当我在Eclipse中运行unit testing时,它处理挪威字母( æ,ø,å )正确(我可以在调试器中validation),但在Android应用程序中,这些字符看起来像倒置问号。 如果我将调试器附加到我的Android应用程序,我可以看到这些字母在从Eclipse运行unit testing时在完全相同的位置不正确,因此它不是Android应用程序中的显示/渲染/视图问题。 当我从调试器中复制文本时,我得到以下结果: Java Process(unit testing) :«Blårek»,«Benny» Android进程(在模拟器中) :«Bl rek»,«Benny» 我希望这些字符串是相同的,但请注意Android中的反转问号如何重放“å”。 我试过运行htmlCleaner.getProperties().setRecognizeUnicodeChars(true)没有任何运气。 另外,我发现无法在html清理器中强制使用UTF-8或ISO-8859-1编码,但我不确定这是否会产生影响。 这是我运行的代码: HtmlCleaner htmlCleaner = new HtmlCleaner(); // connect to url and get root TagNode from HtmlCleaner InputSteram is = new URL( url ).openConnection().getInputStream(); TagNode rootNode = htmlCleaner.clean( is ); // navigate through some TagNodes, getting the […]

Java – Base64字符串输入和输出文本

我需要将包含base64编码文本的字符串写入文本文件,然后将该字符串从文本文件读回字符串变量。 我怎么能这样做,以免因编码问题而导致数据丢失?