Tag: 编码

Java Jersey:接收表单参数作为字节数组

是否可以使用Jersey接收form参数作为字节数组? 我尝试了以下方法: @Path(“/someMethod”) @POST @Produces(MediaType.TEXT_HTML) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String someMethod(@FormParam(“someParam”) byte[] someParam) { return “”; } 但得到了这个错误: SEVERE: The following errors and warnings have been detected with resource and/or provider classes: SEVERE: Missing dependency for method public java.lang.String SomeClass.someMethod(byte[]) at parameter at index 0 SEVERE: Missing dependency for method public java.lang.String SomeClass.someMethod(byte[]) at parameter at index […]

字符串SHA-512编码:C#和JAVA结果不同

我试图比较sha512编码的两个不同的字符串。 但是,结果是不同的。 它可能是我所说的编码问题。 我希望你能帮助我。 这是我的Java代码: MessageDigest digest = java.security.MessageDigest.getInstance(“SHA-512”); digest.update(MyString.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); for (int i = 0; i < messageDigest.length; i++) { String h = Integer.toHexString(0xFF & messageDigest[i]); while (h.length() < 2) h = "0" + h; hexString.append(h); } return hexString.toString(); 而且,这是我的C#代码: UnicodeEncoding UE […]

构建和validationGigya签名

我根据Gigya 构建签名的说明编写了一个方法来validation指定时间戳和UID的gigya 签名 。 这是Gigya的psuedo代码: string constructSignature(string timestamp, string UID, string secretKey) { // Construct a “base string” for signing baseString = timestamp + “_” + UID; // Convert the base string into a binary array binaryBaseString = ConvertUTF8ToBytes(baseString); // Convert secretKey from BASE64 to a binary array binaryKey = ConvertFromBase64ToBytes(secretKey); // Use the HMAC-SHA1 […]

如何转换一串俄罗斯西里尔字母?

我解析mp3标签。 String artist – 我不知道编码是什么 Ïåñíÿ ïðî íàäåæäó – 俄语中的示例字符串”Песня про надежду” 我使用http://code.google.com/p/juniversalchardet/ 码: String GetEncoding(String text) throws IOException { byte[] buf = new byte[4096]; InputStream fis = new ByteArrayInputStream(text.getBytes()); UniversalDetector detector = new UniversalDetector(null); int nread; while ((nread = fis.read(buf)) > 0 && !detector.isDone()) { detector.handleData(buf, 0, nread); } detector.dataEnd(); String encoding = detector.getDetectedCharset(); […]

JavaMail从字符串发送邮件附件 – 编码UTF-8

我的应用程序必须发送一个文本文件,它首先必须生成一个String。 该文本包含非ASCII符号,所以我希望它是UTF-8。 我已经尝试了很多变种,但我收到的所有附件都是一些问号。 而且,当我发送与邮件正文相同的文本时,它可以正常工作。 以下是生成带附件的MimeBodyPart的代码行: String attachment = “Привет”; messageBodyPart.setContent(new String(attachment.getBytes(“UTF-8”), “UTF-8″),”text/plain; charset=UTF-8”); 我也尝试使用没有任何变换的字符串,只使用字节,现在,如你所见,我试图从字节生成一个字符串… 我究竟做错了什么? (我确实记得在另一个项目中这样做,但是我不再能够访问它的源代码)。 先谢谢你。 提莫菲。 UPDATE 阅读完回复后,经过一些不成功的试验后,我认为最好发布我的邮件代码。 我有Mailer类,它负责邮件发送,其他类只能调用它的静态sendMessage()方法来发送消息。 这一切都在Google App Engine上运行。 public static void sendMessage(String to, String subject, String msgBody, String attachment) throws AddressException, MessagingException { Properties props = new Properties(); Session mailSession = Session.getDefaultInstance(props, null); Message msg = new MimeMessage(mailSession); String […]

如何检测非法的UTF-8字节序列以在java输入流中替换它们?

有问题的文件不在我的控制之下。 大多数字节序列都是有效的UTF-8,它不是ISO-8859-1(或其他编码)。 我想尽我所能提取尽可能多的信息。 该文件包含一些非法字节序列,应替换为替换字符。 这不是一件容易的事,它认为它需要一些关于UTF-8状态机的知识。 Oracle有一个包装器可以满足我的需求: UTF8ValidationFilter javadoc 是否有类似的东西(商业或免费软件)? 谢谢 -stephan 解: final BufferedInputStream in = new BufferedInputStream(istream); final CharsetDecoder charsetDecoder = StandardCharsets.UTF_8.newDecoder(); charsetDecoder.onMalformedInput(CodingErrorAction.REPLACE); charsetDecoder.onUnmappableCharacter(CodingErrorAction.REPLACE); final Reader inputReader = new InputStreamReader(in, charsetDecoder);

发送电子邮件时主题编码问题

我正在发送一封电子邮件,但我正确地收到了该邮件,但该主题的编码不正确。 我发送“invitación”但我收到“invitaci?n”。 消息内容正常。 当主题在String变量中设置时,消息的内容来自Velocity Template的转换。 我已经google了,我看到有人说MimeUtility.encodeText()可以解决问题,但我没有成功。 我该如何解决这个问题? 这是我到目前为止的代码。 String subject = “Invitación”; String msgBody = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, “/vmTemplates/template.vm”, “UTF-8”, model); Properties props = new Properties(); Session session = Session.getDefaultInstance(props, null); try { String encodingOptions = “text/html; charset=UTF-8”; Message msg = new MimeMessage(session); msg.setHeader(“Content-Type”, encodingOptions); msg.setFrom(new javax.mail.internet.InternetAddress(emailFrom)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(emailTo)); msg.setSubject(subject); msg.setContent(msgBody, encodingOptions); Transport.send(msg); } catch (AddressException […]

为什么从ResourceBundle.getBundle中检索字符串时难以理解的字符

请告诉我如何解决这个问题: Locale locale = new Locale(language); ResourceBundle messages = ResourceBundle.getBundle(“i18n.messages”, locale, utf8Control); try { String message = new String(messages.getString(key).getBytes(“ISO-8859-1”), “UTF-8”); pageContext.getOut().write(message); } catch (IOException e) { e.printStackTrace(); } 我正在尝试实现本地化,我从创建的消息文件中获取文本,问题是,而不是必要的字符,它输出“?????? ??????? ????” 谷歌搜索,问题似乎是编码,我试图这样做: String message = new String(messages.getString(key).getBytes(“ISO-8859-1”), “UTF-8”) 还创建了utf8Control: public class Utf8Control extends ResourceBundle.Control { @Override public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader […]

用于ASP经典的base64图像解码器

任何人都可以告诉我如何解码经典ASP中的base64编码图像? 该图像由Java org.apache base64类编码。 Java使用RFC 2045进行base64解码。

用于apache httpclient 4的UNICODE中的URI编码

我正在使用apache http client 4进行所有的Web访问。 这意味着我需要做的每个查询都必须通过URI语法检查。 我尝试访问的其中一个站点使用UNICODE作为URL GET参数编码,即: http://maya.tase.co.il/bursa/index.asp?http://maya.tase.co.il/bursa/index.asp?view=search&company_group=147&srh_txt=%u05E0%u05D9%u05D1&arg_comp=&srh_from = 2009-06-01&srh_until = 2010-02-16&srh_anaf = -1&srh_event = 9999&is_urgent = 0&srh_company_press = (参数“srh_txt =%u05E0%u05D9%u05D1”在UNICODE中编码srh_txt =ניב) 问题是URI不支持UNICODE编码(它只支持UTF-8)这里真正的大问题是,这个站点期望它的序列是用UNICODE编码的,所以任何尝试使用String.format转换url( “ http://…srh_txt=%s& …”,URLEncoder.encode(“ניב”,“UTF8”))会产生一个合法的url,可用于构建URI但网站响应为它带有错误消息,因为它不是它所期望的编码。 顺便说一句,URL对象可以创建,甚至用于使用未转换的URL连接到网站。 有没有办法用非UTF-8编码创建URI? 有没有办法使用apache httpclient 4与常规URL(而不是URI)? 谢谢,Niv