का उपयोग करके MySQL तालिका में छोटा कर दिया गया है। मैं perl/dBI का उपयोग कर एक MySQL तालिका में utf-8 स्ट्रिंग्स लिखने की कोशिश कर रहा हूं। किसी कारण से स्ट्रिंग को पहले गैर-असीसी चरित्र में छोटा कर दिया जा रहा है।यूआरएफ -8 स्ट्रिंग को पर्ल/डीबीआई
उदाहरण के लिए, अगर मैं निम्न तालिका की स्थापना:
CREATE DATABASE testdb DEFAULT CHARSET=utf8;
CREATE TABLE testdb.testtable (textval CHAR(30)) DEFAULT CHARSET=utf8;
और फिर निम्नलिखित पर्ल कोड चलाएँ:
#!/usr/bin/perl
use strict;
use DBI;
my $dbh = DBI->connect('DBI:mysql:host=localhost;database=testdb', 'testuser', 'somepassword', {mysql_enable_utf8 => 1}) or die $DBI::errstr;
$dbh->do('SET NAMES utf8');
$dbh->do("INSERT INTO testtable (textval) VALUES ('the N\xFCrburgring')");
यह वास्तव में लिखते हैं "एन"।
271 Query INSERT INTO testtable (textval) VALUES ('the Nürburgring')
तो स्ट्रिंग DB सर्वर बरकरार तक पहुंच रहा है: MySQL क्वेरी लॉग में देख रहे हैं
(जब यह "नुर्बुर्गिंग" लेखन किया जाना चाहिए), मैं इस को देखते हैं।
अगर मैं MySQL कंसोल में सीधे ही क्वेरी दर्ज करें:
INSERT INTO testtable (textval) VALUES ('the Nürburgring');
पूरी स्ट्रिंग सही ढंग से लिखा है। कोई विचार क्या मैं गलत कर रहा हूँ?
और यह अगर आप '\ xFC'' अपनी स्क्रिप्ट में ü' को बदलने के बारे में क्या है? – TLP
यह वही बात करता है यदि मैं पर्ल कोड में एक शाब्दिक ü का उपयोग करता हूं। – plasticinsect