2015-01-30 9 views
5

का उपयोग कर डेटाबेस में ö/ä/ü को कैसे सम्मिलित किया जाए, मुझे एक दर्जन बार पूछा गया था, मुझे पता है, लेकिन एकमात्र चीज जो मैं चाहता हूं वह एक php स्क्रिप्ट का उपयोग कर डेटाबेस में 'Ä' जैसे जर्मन अक्षर डालना है। मौजूदा समाधानों का उपयोग करके बस काम नहीं करता है।php utf8

<?php 
header('Content-type: text/html; charset=utf-8'); 
$con = mysqli_connect("localhost", "username", "password"); 

mysqli_set_charset($con, "utf8mb4"); 
mysqli_select_db($con, "database"); 
mysqli_query($con, "SET SESSION CHARACTER_SET_RESULTS =utf8mb4;"); 
mysqli_query($con, "SET SESSION CHARACTER_SET_CLIENT =utf8mb4;"); 
mysqli_query($con, "SET NAMES 'utf8mb4';"); 

mysqli_query($con, 
"SET character_set_results = 'utf8', 
character_set_client = 'utf8', 
character_set_connection = 'utf8', 
character_set_database = 'utf8', 
character_set_server = 'utf8';"); 

$title = 'Ö'; 
$result = mysqli_query($con, 
"INSERT INTO Test (Title) 
VALUES ('" . utf8_encode($title) . "');"); 
#Doesn't work, this was inserted: Ã 
?> 

स्तंभ 'शीर्षक' की चारसेट utf8mb4_general_ci के लिए और टेबल ही अपने utf8_general_ci के लिए निर्धारित है। MySQL सर्वर संस्करण 5.5.31 MySQL चार्टसेट यूटीएफ -8 यूनिकोड

क्या कोई जानता है कि मैं क्या गलत कर रहा हूं या क्या मुझे यहां कुछ याद आ रहा है?

+0

'mysqli_query ($ con," सेट सत्र CHARACTER_SET_RESULTS = latin1; "); mysqli_query ($ con, "सेट सत्र CHARACTER_SET_CLIENT = latin1;"); 'utf8mb4 होना चाहिए और लैटिन 1 नहीं होना चाहिए। –

+0

सुनिश्चित करें कि आपके डेटा का स्रोत यूटीएफ 8 जमा कर रहा है। यदि आप अपना वेब पेज निर्दिष्ट नहीं करते हैं तो यूटीएफ 8 है, तो यह कुछ ऐसा हो सकता है जैसे विंडोज -1252 – Machavity

+0

अपनी टेबल सेटिंग्स phpMyAdmin जांचें, शायद आपको तालिका – Alex

उत्तर

0

Mihai ने कहा, मुझे utf8_encode() फ़ंक्शन को हटा देना था, जिसने वर्णमाला को गड़बड़ कर दिया था। इसे हटाने के बाद, यह उतना आसान काम करता है जितना इसे करना चाहिए।

संबंधित मुद्दे