Мне нужно импортировать данные из TXT-файла в mySQL db.php вставить текстовый файл в кодировку mysql
Когда я открываю txt с блокнотом, файл записывается в DOS/Windows ANSI (кодируется в ANSI). Когда я открываю его AkelPad я получаю информацию о том, что файл закодирован в 1253 (ANSI-гречески)
импортировать данные с ниже код
$myFile = "Bill.txt";
$fh = fopen($myFile, 'r');
$theData1 = fread($fh, filesize($myFile));
$theData = str_replace("'","#",$theData1);
$theData = iconv('cp1253','UTF-8',$theData);
$data = (filesize($myFile))/156;
fclose($fh);
$line = 0;
mysql_query("TRUNCATE Bill");
for ($counter = 1; $counter <= $data; $counter++) {
$Barcode[counter] = substr($theData, ($line+0), 10);
$BuildingCode[counter] = substr($theData, ($line+10), 5);
$BuildingAddress[counter] = substr($theData, ($line+14), 40);
$FlatName[counter] = substr($theData, ($line+54), 50);
$FlatDescription[counter] = substr($theData, ($line+104), 8);
$EntrySeason[counter] = substr($theData, ($line+112), 23);
$Period[counter] = substr($theData, ($line+135), 11);
$Amountint = substr($theData, ($line+146), 7);
$Amountdec = substr($theData, ($line+153), 2);
$Amount[counter] = $Amountint.'.'.$Amountdec;
mysql_query("INSERT INTO Bill (Id, Code, Address, Name, Description, EntrySeason, Period, Revenue)
VALUES ('$Barcode[counter]', '$BuildingCode[counter]', '$BuildingAddress[counter]', '$FlatName[counter]', '$FlatDescription[counter]', '$EntrySeason[counter]', '$Period[counter]', '$Amount[counter]')");
$line = $counter * 156;
}
Когда я прочитал вышеуказанные данные с кодом
$query = "SELECT * FROM Bill ORDER BY Id ASC";
$result = mysql_query($query) or die(mysql_error());
$i=0;
while ($row=mysql_fetch_array($result)){
$i=$i+1;
echo $i." - ".$row['Id']. " - ". $row['Code']. " - ". $row['Address']. " - ". $row['Name']. " - ". $row['Description']. " - ". $row['EntrySeason']. " - ". $row['Period']. " - ". $row['Revenue'].'<br>';
Получаю греческие буквы. Когда я проверяю дб с PHPMyAdmin все греческие элементы, как это обугливает ÃÅÙÑÃ.ÃÅÍÍÇÌÁÔÁ 39Á
Если я пытаюсь вставить entrys из MySQL в SQLite буквы эти ÃÅÙÑÃ.ÃÅÍÍÇÌÁÔÁ 39Á
Где я ошибаюсь?
Я пробую следующее: я посылаю первую букву из моего txt и получаю 208. После iconv iconv ('CP1253', 'UTF-8', $ theData); я получаю 206 ... Что нужно делать? – kosbou
Каков правильный характер. Должно ли это 206 или 208? И что вы получаете, когда пытаетесь получить это из базы данных (снова в ord)? – Ondrej