 |
 | |
14.08.2008, 00:57
|
#1 (permalink)
| | Новичок
Специализация: Новичок Регистрация: 13.08.2008 Сообщений: 5 Репутация: 0  5911252 | проблемка... в общем... две таблицы, первая в кодировке latin1_swedish_ci , вторая в cp1251_general_ci , скрипт который перегоняет данные из первой таблицы во вторую... из-за различия кодировок таблиц, получается "бнопня"... что делать?
Последний раз редактировалось Delta; 14.08.2008 в 00:58..
|
| |
14.08.2008, 07:01
|
#2 (permalink)
| | Новичок
Специализация: Переводчик Регистрация: 29.05.2008 Сообщений: 13 Репутация: 5  568504 | Ответ: проблемка... Ну я бы экспортировал таблицу которую надо переделать... Сохранил бы файл в другой кодировке (конечно в зависимости от размера) и залил бы обратно например дампером, а если файл маленький то и простым запросом 
__________________ Онлайн помощь по Веб-программированию (включяя vBulletin, DLE, Joomla, ets.) от 1$
Советы и подсказки БЕСПЛАТНО |
| |
14.08.2008, 11:30
|
#3 (permalink)
| | Новичок
Специализация: Новичок Регистрация: 13.08.2008 Сообщений: 5 Репутация: 0  5911252 | Ответ: проблемка... дело в том что структура у таблиц разная... |
| |
14.08.2008, 12:33
|
#4 (permalink)
| | Местный
Специализация: Кодер Регистрация: 14.06.2008 Сообщений: 292 Репутация: 142  701044 | Ответ: проблемка... Ну, тогда в том скрипте, который перегоняет, сделай перекодировку данных через iconv. |
| |
14.08.2008, 13:24
|
#5 (permalink)
| | Новичок
Специализация: Новичок Регистрация: 13.08.2008 Сообщений: 5 Репутация: 0  5911252 | Ответ: проблемка... Цитата: <?
/* ------- Настройка скрипта ---------------------------------------------- */
$dbhost = "localhost";
$dbuser = "underworld";
$dbpass = "";
$dbname = "underworld";
define("NUKE_PREFIX", "fusion"); // Префикс таблиц Spaiz-Nuke
define("DLE_PREFIX", "dle"); // Префикс таблиц Datalife Engine
/* ----------------------------------------------------------------------- */
define('C_DEFAULT', 1);
define('C_RESULT', 2);
define('C_ERROR', 3);
header("Expires: Wen, 15 Oct 2005 11:07:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");
ob_implicit_flush();
?>
<html><head>
<title>:: Php-Fusion -> Datalife Engine news converter ::</title>
<meta HTTP-EQUIV=Content-Type CONTENT="text/html; charset=windows-1251">
<style>
html, form{
padding:0;
margin:0;
}
body, table, tr, td{
font:11px Tahoma, Verdana;
}
.copyright{
font:11px Tahoma, Verdana;
color:#cccccc;
}
a{
text-decoration:none;
}
a:hover{
text-decoration:underline;
}
</style>
</head>
<body>
<?
if (!$db = @mysql_connect($dbhost, $dbuser, $dbpass)) die('<font size=+1>An Error Occurred</font><hr>Unable to connect to the database.');
if (!@mysql_select_db($dbname, $db)) die("<font size=+1>An Error Occurred</font><hr>Unable to find the database <b>$config_dbname</b> on your MySQL server.");
?>
<script>
var WidthLocked = false;
function lock_button(value) {
document.getElementById('process').disabled = value;
}
function java_output(str, color){
switch(color){
case 2: color = 'navy'; break;
case 3: color = 'red'; break;
default: color = 'black';
}
with(document.getElementById('logarea')){
if (!WidthLocked){
style.width = clientWidth;
WidthLocked = true;
}
str = '<FONT COLOR=' + color + '>' + str + '</FONT>';
innerHTML += innerHTML ? "<BR>\n" + str : str;
scrollTop += 14;
}
}
</script>
<table cellpadding=0 cellspacing=0 width=100% height=80%>
<tr><td valign=middle>
<form method=post>
<input type=hidden name=action value=process>
<table cellpadding=2 cellspacing=0 width=350 align=center border=0>
<tr><td style="font:11px Tahoma, Verdana" colspan=2>Прогресc:</td></tr>
<tr><td colspan=2>
<div id=logarea style="width: 100%; height: 140px; border: 1px solid #7F9DB9; padding: 3px; overflow: auto;"></div>
</td></tr>
<tr><td class=copyright width=285>
</td>
<td align=right width=65><input id=process type=submit value=" Старт " style="font:11px Tahoma, Verdana"></td>
</tr>
</table>
</form>
</td></tr>
</table>
<?
if ($_POST['action'] == "process") {
lock(true);
line("Запуск..");
line("");
create_news();
line("");
line("Готово!");
line("");
lock(false);
};
function lock($value = true) {
echo "<script>lock_button('$value')</script>";
}
function line($str, $color = C_DEFAULT) {
$str = preg_replace("/\s{2}/", " ", $str);
echo "<SCRIPT>java_output('{$str}', $color);</SCRIPT>";
}
function create_news() {
$query = "SELECT * FROM ". NUKE_PREFIX ."_news";
$result = mysql_query($query) or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
while ($item = mysql_fetch_array($result)) {
$title = $item['news_subject'];
$ss = $item['news_news'];
$fs = $item['news_extended'];
$query = "INSERT INTO ".DLE_PREFIX."_post (id, autor, date, short_story, full_story, xfields, title) VALUES ('', '', '', '$ss', '$fs', '', '$title')";
mysql_query($query) or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
};
line("Импортирование новостей завершено", C_RESULT);
}
?>
<body></html> вот скрипт)) только я хз как...))
Последний раз редактировалось Delta; 14.08.2008 в 14:35..
|
| |
14.08.2008, 17:41
|
#6 (permalink)
| | Местный
Специализация: Кодер Регистрация: 14.06.2008 Сообщений: 292 Репутация: 142  701044 | Ответ: проблемка... А вообще наверно проще будет так: делаешь дамп первой таблицы, потом перекодируешь его в 1251, потом заливаешь во временную таблицу во все том-же 1251, потом этим скриптом переделываешь из временной таблицы в нужную, потом удаляешь временную. Просто iconv может не везде и не всегда корректно работать, особенно если вызывать через php. Не забудь посмотреть нормально ли сделался дамп (читаются ли русские символы в текстовом редакторе при выборе нужной кодировки), нормально ли сделалась переконвертация файла и нормально ли оно залилось.
Если дамп таблицы большой и качать его к себе не позволяет канал или трафик, то можно делать перекодировку на ходу, при помощи, например, sypex dumper (надо в настройках выставить кодировку forced->cp1251). |
| | | Этот пользователь отблагодарил ascending за это сообщение: | |
22.08.2008, 05:39
|
#7 (permalink)
| | Администратор
Специализация: Кодер Регистрация: 05.12.2007 Адрес: Москва Сообщений: 3,957 Репутация: 1879  599613 | Ответ: проблемка... Delta, тебе ascending, делоговорит в общем то  |
| | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | | |
Ваши права в разделе
| Вы не можете создавать новые темы Вы не можете отвечать в темах Вы не можете прикреплять вложения Вы не можете редактировать свои сообщения | | |
Похожие темы | | Тема | Автор | Раздел | Ответов | Последнее сообщение | | Проблемка в FF | Walk | Я - новенький! | 11 | 06.09.2008 13:56 | Часовой пояс GMT +4, время: 23:24.
Powered by vBulletin® Version 64.43.1 Ω Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Web Mastering By Devil Art |  |