从byte []创建String时,某些字节发生了变化

时间:2016-05-13 06:06:06

标签: java string bytearray

从byte []创建String时,我遇到了一些奇怪的行为。 我有一个字节数组,通过读取一些文件内容填充。以下是字节数组的具体内容。

Contents of my byte[]

这里位置1533的byte []的内容是-99(9D)

现在我从这个字节[]

创建新字符串
String contents = new String(buffer, 0, bufLen);

但是现在如果我再次尝试使用以下代码将其转换为byte []

byte[] newBuffer= contents.getBytes();

newBuffer中的部分字节发生了变化。 Now byte at location 1533 changed

我不明白为什么会这样。我还应该做些什么,以避免这种情况?

此致 Anuj

1 个答案:

答案 0 :(得分:0)

提供转换的编码。

<?php

    $name = $_POST['name'];
    $month = $_POST['month'];
    $day = $_POST['day'];
    $year = $_POST['year'];
    $starttime = $_POST['starttime'];
    $email = $_POST['email'];



    if (strlen($name) < 3) {
        echo '* Name must be at least 3 characters long' . '<br>';
        }

    if ($month == 0) {
        echo '* Month must be chosen' . '<br>';
        }
    if ($day == 0) {
        echo '* Day must be chosen' . '<br>';
        }
    if ($year != 2016) {
        echo '* Year must be 2016' . '<br>';
        }
    if ($month == 2 && $day == 30) {
        echo '* Feb 30th is an invalid date' . '<br>';
        }
    if ($month == 2 && $day == 31) {
        echo '* Feb 31st is an invalid date' . '<br>';
        }
    if (empty($starttime)) {
        echo '* Must input valid  Appointment Time' . '<br>';
        }

    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
        echo '* Must input valid email address' . '<br>';
        }
    else {
        echo '<br>' . 'Submission Successful!' . '<br>';
        }


?>