Tag: 字符编码

在java中使用request.getParameter()时为什么字符被破坏?

我在JSP页面中有这样一个链接,编码为big5 http:// hello / world?name =婀ㄉ当我在浏览器的URL栏中输入它时,它将被改为http:// hello / world?name = %23%24%23当我们想在jsp页面中获取此参数时,所有字符都已损坏。 我们设置了这个:request.setCharacterEncoding(“UTF-8”),因此所有请求都将转换为UTF8。 但为什么在这种情况下,它不起作用? 提前致谢!。

如何使用特定的字符编码读取Java文件?

我试图以UTF-8或Windows-1252的forms读取文件,具体取决于此方法的输出: public Charset getCorrectCharsetToApply() { // Returns a Charset for either UTF-8 or Windows-1252. } 到目前为止,我有: String fileName = getFileNameToReadFromUserInput(); InputStream is = new ByteArrayInputStream(fileName.getBytes()); InputStreamReader isr = new InputStreamReader(is, getCorrectCharsetToApply()); BufferedReader buffReader = new BufferedReader(isr); 我遇到的问题是将BufferedReader实例转换为FileReader 。 此外: 文件本身的名称( fileName )不能被信任为特定的Charset ; 有时文件名将包含UTF-8字符,有时还包含Windows-1252。 文件的内容也是如此(但是,如果文件名和文件内容始终具有匹配的字符集)。 只有getCorrectCharsetToApply()的逻辑可以选择要应用的字符集,因此在调用此方法之前尝试通过其名称读取文件很可能会导致Java尝试使用错误的编码读取文件名…这会导致它死了! 提前致谢!

MultipartEntityBuilder和Charset

我升级了我的httpmime包,现在我的字符串没有作为UTF-8发送或接收 MultipartEntityBuilder entity = MultipartEntityBuilder.create(); Charset chars = Charset.forName(“UTF-8”); entity.setCharset(chars); entity.addTextBody(“some_text”, some_text); HttpPost httppost = new HttpPost(url); httppost.setEntity(entity.build()); …and so on.. 我错过了什么? 我曾经构建一个StringBody并在stringbody中设置charset,但现在已经弃用了,它似乎不起作用

Eclipse字符编码

我使用Scanner扫描Java中的.txt文档。 但是,当我在Eclipse中打开.txt文档时,我注意到某些字符未被识别,并且它们被替换为如下所示: 这些字符甚至不允许我扫描文件 while(scan.hasNext) 自动返回false(如果这些字符不存在,那么我可以很好地扫描文档)。 那么,我如何让Eclipse识别这些字符以便我可以扫描? 我无法手动删除它们,因为文档非常大。 谢谢。

有没有办法将UTF-8与app引擎一起使用?

我正在寻找关于app引擎如何处理字符编码的一些解释。 我正在研究服务器在应用程序引擎上的客户端 – 服务器应用程序。 这是一个从头开始构建的新应用程序,因此我们在任何地方都使用UTF-8。 客户端通过POST,x-www-form-urlencoded向服务器发送一些字符串。 我收到它们并回复它们。 当客户端收回它时,它是ISO-8859-1! 在POST到blobstore时我也看到了这种行为,参数发送为UTF-8,multipart / form-data编码。 为了记录,我在Wireshark中看到了这一点。 所以我100%确定我发送UTF-8并获得ISO-8859-1。 另外,我没有看到mojibake:ISO-8859-1编码的字符串非常好。 这也不是误解内容类型的问题。 这不是客户。 一路走来正确地认识到我正在发送UTF-8参数,但由于某种原因正在将它们转换为ISO-8859-1。 我认为ISO-8859-1是GAE servlet的默认字符编码。 我的问题是,有没有办法告诉GAE不要转换为ISO-8859-1而是在任何地方使用UTF-8? 假设servlet做了这样的事情: public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType(“application/json”); String name = req.getParameter(“name”); String json = “{\”name\”:\”” + name + “\”}”; resp.getOutputStream().print(json); } 我尝试设置响应的字符编码并请求“UTF-8”,但这并没有改变任何东西。 提前致谢,

在什么编码中存储了Java char?

Java char类型是否保证以任何特定编码存储? 编辑:我错误地说了这个问题。 我要问的是保证使用任何特定编码的字面文字?

确定字符串中的字符是否都是特定字符集

我需要能够在Java中获取一个字符串,并确定其中包含的所有字符是否都在指定的字符集中(例如ISO-8859-1)。 我已经四处寻找一个简单的方法(包括使用CharsetDecoder ),但还没有能够找到一些东西。 获取字符串并确定所有字符是否在给定字符集中的最佳方法是什么?

读取多字节字符时InputStream和InputStreamReader之间的区别

InputStream和InputStreamReader之间的区别在于InputStream读取为byte ,而InputStreamReader读取为char 。 例如,如果文件中的文本是abc ,那么它们都可以正常工作。 但是如果文本是a你们由a和两个中文字符组成的a你们 ,则InputStream不起作用。 所以我们应该使用InputStreamReader ,但我的问题是: InputStreamReader如何识别字符? a是一个字节,但中文字符是两个字节。 它是否读取一个字节并将另一个字符识别为两个字节,或者对于本文中的每个字符, InputStreamReader是否将其读取为两个字节?

手动加载Java Charset

我正在使用JavaMail API做一些工作,并且我遇到了Java本身不支持的编码(按设计),例如UTF7 / unicode-1-1-utf-7。 特别是对于那种编码,我发现了用于UTF7的Java Charset和CharsetProvider的JUTF7实现。 但是,将jutf7.jar添加到我的类路径后,我仍然得到UnsupportedEncodingException ,而unicode-1-1-utf-7肯定是JUTF7的别名之一。 有没有办法手动加载Charset或确保加载Charset以便我可以将其作为原因进行排除?

request.getParameter()在java servlet中没有正确显示字符编码

我在java servlet文件中遇到UTF-8的问题。 当我在URL中获取参数值时,我遇到了UTF-8字符的问题。 它无法正确显示日文字符。 Jsp头已经有了 我在连接器中将URIEncoding设置添加到server.xml中的UTF-8。 我在jsp中编写了以下代码。 <a href="javascript:showModalWindow('PopUpFile!init.action?=’,”,940,650);”> function showModalWindow(x_URL, x_ARG, x_WIDTH, x_HEIGHT) { var x_OPT = “dialogHeight: ” + x_HEIGHT + “px; ” + “dialogWidth: ” + x_WIDTH + “px; ” + “edge: Raised; center: Yes; resizable: Yes; status: Yes;”; x_URL += “&name=”+document.getElementById(“txt_name”).value; var retValue = window.showModalDialog(x_URL, x_ARG, x_OPT); if (retValue != null) […]