API ничего не возвращает, если есть умлаут - PullRequest
0 голосов
/ 03 мая 2020

Я создал API для базы данных mySQL, чтобы получить данные о продукте для данного штрих-кода.

Обычно он работает хорошо, я могу получить все данные с помощью запроса POST, который имеет приложение Content-Type / x- www-form-urlencoded и параметр тела для штрих-кода.

Почтальон с параметром штрих-кода и ответом

Однако возникает проблема, когда продукт для данного штрих-кода содержит умлаут (ы) - в этом случае я ничего не получаю.

Продукт, содержащий умлаут в названии

Почтальон с этим параметром штрих-кода

Кроме того, вот продукты. php, которые я использую для запроса.


// Create connection
$con=mysqli_connect("localhost"," "," "," ");

// Check connection
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

//
$barcode = $con->real_escape_string($_POST['barcode']); 
$stmt = $con->prepare("SELECT * FROM products WHERE UPC = ? OR EAN = ?");
$stmt->bind_param("ss", $barcode, $barcode);
$stmt->execute();

// Check if there are results
if ($result = $stmt->get_result())
{
    // Prepares all the results to be encoded in a JSON
    $row = $result->fetch_assoc();

    $product_upc = $row['UPC'];
    $product_ean = $row['EAN'];
    $product_asin = $row['ASIN'];
    $product_name =$row['name'];
    $product_brand =$row['brand'];
    $product_category = $row['category'];
    $product_image =$row['imageURL'];
    $product_ingredients =$row['ingredients'];
    $product = array('UPC' => $product_upc, 'EAN' => $product_ean, 'ASIN' => $product_asin, 'name' => $product_name, 'brand'=> $product_brand, 'category'=> $product_category, 'imageURL'=> $product_image, 'ingredients'=> $product_ingredients);

    // encodes array with results from database
    echo json_encode($product);
}

// Close connections
mysqli_close($con);
?>

(Просто чтобы упомянуть, что я пробовал как с json_encode ($ product), так и с json_encode ($ product, JSON_UNESCAPED_UNICODE) и это одно и то же)

Есть идеи, как мне это исправить? Спасибо!

...