çeşitli araştırmalar yaptım ama sql den gelen verideki türkçe karakterler ğ,ç,ş gibi
JSON_UNESCAPED_UNICODE de kullansam olmuyor php kodum şu şekilde
try {
global $DBSettings;
$pdo = new PDO("odbc:DRIVER={$DBSettings['driver']};SERVER={$DBSettings['server']};DATABASE={$DBSettings['game_db']};charset=UTF-8", $DBSettings['uid'], $DBSettings['pass']);
$haber_secenek = isset($_POST['haber_secenek']) ? (int)$_POST['haber_secenek'] : 1;
$stmt = $pdo->prepare("SELECT haber_basligi, haber_icerigi, haber_tarihi
FROM _panelhaber
WHERE haber_secenek = :haber_secenek
ORDER BY haber_tarihi DESC");
$stmt->bindParam(':haber_secenek', $haber_secenek, PDO::PARAM_INT);
$stmt->execute();
$haberler = $stmt->fetchAll(PDO::FETCH_OBJ);
if ($haberler) {
echo json_encode($haberler,JSON_UNESCAPED_UNICODE);
} else {
echo json_encode(['error' => "Haber bulunamadı."]);
}
} catch (PDOException $e) {
echo json_encode(['error' => "Bağlantı hatası: " . $e->getMessage()]);
}
PHP Dosyasını bomsuz utf-8 olarak kaydettiğinize emin olun,
<?php
try {
global $DBSettings;
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci"
];
$pdo = new PDO("odbc:DRIVER={$DBSettings['driver']};SERVER={$DBSettings['server']};DATABASE={$DBSettings['game_db']};charset=utf8mb4", $DBSettings['uid'], $DBSettings['pass'], $options);
$haber_secenek = isset($_POST['haber_secenek']) ? (int)$_POST['haber_secenek'] : 1;
$stmt = $pdo->prepare("SELECT haber_basligi, haber_icerigi, haber_tarihi
FROM _panelhaber
WHERE haber_secenek = :haber_secenek
ORDER BY haber_tarihi DESC");
$stmt->bindParam(':haber_secenek', $haber_secenek, PDO::PARAM_INT);
$stmt->execute();
$haberler = $stmt->fetchAll(PDO::FETCH_OBJ);
if ($haberler) {
$haberler = array_map(function($haber) {
return array_map('utf8_encode', (array)$haber);
}, $haberler);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($haberler, JSON_UNESCAPED_UNICODE);
} else {
echo json_encode(['error' => "Haber bulunamadı."]);
}
} catch (PDOException $e) {
echo json_encode(['error' => "Bağlantı hatası: " . $e->getMessage()]);
}Bunun haricinde yinede olmazsa htaccess dosyanızda farklı dillere yönlendirme olup olmadığına bakın.