HTML दस्तावेज़ का वर्ण एन्कोडिंग घोषित नहीं किया गया था


163

जब मैं अपने फॉर्म के सबमिट बटन पर क्लिक करता हूं तो निम्न त्रुटि संदेश प्रकट होता है:

"HTML डॉक्यूमेंट का कैरेक्टर एन्कोडिंग घोषित नहीं किया गया था। डॉक्यूमेंट में कुछ ब्राउजर में ग्रैबल्ड टेक्स्ट के साथ रेंडर होगा यदि डॉक्यूमेंट में US-ASCII रेंज के बाहर के कैरेक्टर हैं। पेज के कैरेक्टर एन्कोडिंग को डॉक्यूमेंट में घोषित करना होगा। हस्तांतरण प्रोटोकॉल में। "

insert.html:

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<h1> Insert Page </h1>
    <form   action="insert.php"  method="post"  enctype="application/x-www-form-urlencoded" >
    <p>Title:<input type="text"  name="title" size="40"/></p>
     <p>Price:<input type= "text"  name="price" size="40" /></p>
     <p><input type="submit" value="Insert" />
    <input type="reset"  value="Reset" /></p>
    </form>    
</body>
</html>

insert.php:

<?php
   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;
 ?>

मुझे नहीं पता कि मेरे कोड में समस्या कहां है। क्रिप्या मेरि सहायता करे।



आप .php पेज को .php: insert.html-> के नामकरण की कोशिश करें insert.php। और अपने फॉर्म हैंडलिंग फाइल ( insert.php) को insert_action.phpया कुछ और नाम दें । (सुनिश्चित नहीं हैं कि अगर यह मदद करता है लेकिन मैं PHP का उपयोग करते समय पृष्ठों htmlऔर मिश्रणों को नहीं करूंगा php।)
ZZ-bb

ओह प्रिय, यह एक पुराना प्रश्न था। नए उत्तर की वजह से तारीखों पर ध्यान नहीं दिया ...
ZZ-bb

@xing, आप किस ब्राउज़र का उपयोग कर रहे हैं?
पचेरियर

जवाबों:


279

इसे अपने HTML टेम्पलेट के HEAD सेक्शन में पहली पंक्ति के रूप में जोड़ें

<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">

6
दूसरी पंक्ति डिटॉक्साइप html के लिए W3 सत्यापनकर्ता में यह त्रुटि उत्पन्न करती है:Bad value encoding for attribute http-equiv on element meta.
yitwail

3
<मेटा http-equiv = "कंटेंट-टाइप" कंटेंट = "टेक्स्ट / html; चारसेट = ISO-8859-1">
स्कॉट स्टेंसलैंड

2
@yitwail I ने केवल दूसरी पंक्ति को बाहर रखा, और इसने काम किया।
Evorlor

1
मैं फ़ायरफ़ॉक्स का उपयोग कर रहा हूँ। मैंने दोनों को टाइप किया और अब यह मुझे पेज पर कुछ भी नहीं दिखा रहा है। मुझे क्या करना चाहिए? अग्रिम धन्यवाद
हेन्ड्री तनाका

1
हम में से बहुत कम लोग UTF-8 में टेक्स्ट फाइल टाइप करते हैं। अधिकांश पाठ फाइलें ISO-8859-1 प्रारूप में हैं। देखो और देखो कि आपका टेक्स्ट एडिटर क्या प्रोड्यूस कर रहा है, और अगर यह ISO-8859-1 है, तो <meta http-equiv = "Content-Type" कंटेंट = "टेक्स्ट / html; charset = ISO-8859-1">
AgilePro का उपयोग करें

46

मुझे सबसे बुनियादी स्थिति के साथ एक ही समस्या है और मेरी समस्या को इस मेटा को सिर में डालने के साथ हल किया गया था:

<meta charset="UTF-8">

html डॉक्यूमेंट का कैरेक्टर एन्कोडिंग (जो वास्तव में UTF-8 है) घोषित नहीं किया गया था


18

जब आप पोस्ट करते हैं, तो ब्राउज़र केवल आउटपुट करता है $title- आपके सभी HTML टैग और सिद्धांत चले जाते हैं। आपको अपनी insert.phpफ़ाइल में उन लोगों को शामिल करना होगा :

<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>insert page</title></head>
<body>
<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo $title;


 ?>  
</body>
</html>

1
धन्यवाद, मुझे एक समान समस्या हो रही थी, और आपके उत्तर ने इसे ठीक करने में मदद की (मुझे मेटा http-equiv ... लाइन याद आ रही थी)।
डेविड मियां

7

जब मैं फ़ायरफ़ॉक्स में अपना फॉर्म एप्लिकेशन चलाता था तो मुझे भी यही समस्या थी। <meta charset="utf-8"/>Html कोड में जोड़ने से फ़ायरफ़ॉक्स में मेरी समस्या हल हो गई।

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
  <title>Voice clip upload</title>
  <script src="voiceclip.js"></script>
</head>

<body>
  <h2>Upload Voice Clip</h2>
  <form id="upload_form" enctype="multipart/form-data" method="post">
    <input type="file" name="file1" id="file1" onchange="uploadFile()"><br>
    <progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
  </form>
</body>

</html>


3

आपको .html से फ़ाइल को .php में बदलना होगा।

और इस पंक्ति को जोड़ें

header('Content-Type: text/html; charset=utf-8');

1

आपका प्रारंभिक पृष्ठ एक पूर्ण HTML पृष्ठ है जिसमें एक फ़ॉर्म होता है, जिसकी सामग्री डालने के लिए पोस्ट की जाती है। सबमिट बटन पर क्लिक करने पर, लेकिन डालने के लिए। प्रपत्र की सामग्री को संसाधित करने और उनके साथ कुछ करने की आवश्यकता होती है, जैसे उन्हें एक में जोड़ना डेटाबेस, या उन्हें एक नए पृष्ठ पर आउटपुट करता है। आपका वर्तमान इन्सर्ट। Tp केवल शीर्षक फ़ील्ड की सामग्री को आउटपुट करता है, इसलिए आपका ब्राउज़र एक HTML पेज के रूप में व्याख्या करने की कोशिश करता है, और विफल रहता है, जाहिर है, क्योंकि यह वैध HTML नहीं है (यानी यह 'HTML' में समाहित नहीं है) टैग, आदि)।

आपके सम्मिलित। Php को आवश्यक HTML आउटपुट करने की आवश्यकता है, और फॉर्म डेटा को वहाँ कहीं डालें।

उदाहरण के लिए:

<?php 

   $title = $_POST["title"];
   $price = $_POST["price"];

  echo '<html xmlns="http://www.w3.org/1999/xhtml">';
  echo '<head>';
  echo '<meta http-equiv="content-type" content="text/html; charset=utf-8" />';
  echo '<title>';
  echo $title;
  echo '</title>';
  echo '</head>';
  echo '<body>';
  echo 'Hello, world.';
  echo '</body>';

 ?>

अजीब है कि। क्या आप मूल प्रश्न के अतिरिक्त अपना कोड पोस्ट कर सकते हैं?
gkrogers
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.