我用两个字符串创建了一个字节数组.如何将字节数组转换为字符串?
var binWriter = new BinaryWriter(new MemoryStream());
binWriter.Write("value1");
binWriter.Write("value2");
binWriter.Seek(0, SeekOrigin.Begin);
byte[] result = reader.ReadBytes((int)binWriter.BaseStream.Length);
Run Code Online (Sandbox Code Playgroud)
我想转换result为字符串.我可以用它做BinaryReader.但我不能使用BinaryReader(它不支持).
我必须在Android中将字节数组转换为字符串,但我的字节数组包含负值.
如果我再次将该字符串转换为字节数组,我得到的值与原始字节数组值不同.
我该怎么做才能获得正确的转换?我用来进行转换的代码如下:
// Code to convert byte arr to str:
byte[] by_original = {0,1,-2,3,-4,-5,6};
String str1 = new String(by_original);
System.out.println("str1 >> "+str1);
// Code to convert str to byte arr:
byte[] by_new = str1.getBytes();
for(int i=0;i<by_new.length;i++)
System.out.println("by1["+i+"] >> "+str1);
Run Code Online (Sandbox Code Playgroud)
我陷入了这个问题.
我正在Google App Engine中编写一个Web应用程序.它允许人们基本上编辑作为.html文件存储在blobstore中的html代码.
我正在使用fetchData来返回byte[]文件中的所有字符.我正在尝试打印到html,以便用户编辑html代码.一切都很棒!
这是我现在唯一的问题:
转换回字符串时,字节数组有一些问题.聪明的报价和几个角色看起来很时髦.(?或日语符号等)具体来说,我看到的几个字节都有负值导致问题.
智能引号赶回来,-108和-109字节数组英寸 为什么这样,我如何解码负字节以显示正确的字符编码?
我使用Javax Mail API发送电子邮件.我使用联系方式发送输入,必须将其发送到特定的电子邮件.
发送电子邮件没有问题,虽然我是一个丹麦人,因此我需要三个丹麦字符,即'æ','ø'和'å',在主题和电子邮件文本中.
因此我看到我可以使用UTF-8字符编码来提供这些字符,但是当我的邮件发送时我只看到一些奇怪的字母 - 'ã|','ã¸'和'ã¥' - 而不是丹麦语字母 - 'æ','ø'和'å'.
我发送电子邮件的方法看起来像这样
public void sendEmail(String name, String fromEmail, String subject, String message) throws AddressException, MessagingException, UnsupportedEncodingException, SendFailedException
{
//Set Mail properties
Properties props = System.getProperties();
props.setProperty("mail.smtp.starttls.enable", "true");
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.socketFactory.port", "465");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("my_username", "my_password");
}
});
//Create the email with variable input
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setHeader("Content-Type", "text/plain; charset=UTF-8");
mimeMessage.setFrom(new …Run Code Online (Sandbox Code Playgroud) 我使用下面的代码将字节转换为字符串:
System.out.println("string " + Byte.toString((byte)0x63));
Run Code Online (Sandbox Code Playgroud)
为什么打印"字符串99".如何修改让它打印"字符串c"?
我使用以下代码将中文字符保存到.txt文件中,但是当我用Wordpad打开它时,我无法读取它.
StringBuffer Shanghai_StrBuf = new StringBuffer("\u4E0A\u6D77");
boolean Append = true;
FileOutputStream fos;
fos = new FileOutputStream(FileName, Append);
for (int i = 0;i < Shanghai_StrBuf.length(); i++) {
fos.write(Shanghai_StrBuf.charAt(i));
}
fos.close();
Run Code Online (Sandbox Code Playgroud)
我能做什么 ?我知道如果我将中文字符剪切并粘贴到Wordpad中,我可以将其保存到.txt文件中.我如何用Java做到这一点?
为了转换字符串,我将其转换为一个字节,如下所示:
byte[] nameByteArray = cityName.getBytes();
为了转换回来,我做了:String retrievedString = new String(nameByteArray);这显然不起作用.我怎么把它转换回去?
我有一个byte []类型的bytearray长度为17个字节,我想将其转换为字符串,并希望为另一个比较提供此字符串,但我得到的输出不是格式验证,我使用的下面转换的方法.我希望输出为易于验证的字符串,并提供相同的字符串进行比较.
byte[] byteArray = new byte[] {0,127,-1,-2,-54,123,12,110,89,0,0,0,0,0,0,0,0};
String value = new String(byteArray);
System.out.println(value);
Run Code Online (Sandbox Code Playgroud)
输出: {nY
我在SO上找到了一个问题:将ArrayList <String>转换为byte []
它是关于转换ArrayList<String>为byte[].
现在可以转换byte[]成ArrayList<String>?
我使用字符串进行字节数组传输,但发现它有些奇怪.有人可以解释一下,为什么会发生这种情况?
byte[] bytes1 = new byte[]{-104, 73, 61, -15, -92, 109, 62, -99, 50, 82, 26, 87, 38, 110, -12, 49, -104, 73, 61, -15, -92, 109, 62, -99};
byte[] bytes2 = new String(bytes1).getBytes();
//for now bytes2 is equal to: {63, 73, 61, -15, -92, 109, 62, -99, 50, 82, 26, 87, 38, 110, -12, 49, 63, 73, 61, -15, -92, 109, 62, -99}
System.out.println(Arrays.equals(bytes1, bytes2));//false
for(int i = 0; i < bytes2.length; i++){
if(bytes2[i] == 63) {
bytes2[i] = …Run Code Online (Sandbox Code Playgroud)