php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 21-09-2009, 17:05
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard umlaute und sonderzeichen

hi leute,

ich hab da ein recht nerviges problem in bezug auf sonderzeichen, ferner umlauten beim import einer csv dabei in die mysql datenbank.

Letztlich werden die "gängigen" Sonderzeichen zwar importiert und passend gespeichert, aber speziellere Dinge zu "?" konvertiert.

Sie wird auch "Śmiertelny" halt "?miertelny"

Da ich jetzt noch nicht weiß, welche infos fürs debugging nötig sind, hier schon mal die groben details:

doctype ist utf8, mysql collation ist utf8_general_ci.
Des weiteren setze ich folgendes im Anfang des Scripts:
PHP-Code:
header('Content-Type: text/html; charset=UTF-8');
mysql_query('SET NAMES `UTF-8`') ; 
die upload routine ist simple gehalten und speichert die csv als temp.csv aufm ftp:
PHP-Code:
if($error=="1") {
                @
unlink($file);
            } else {
                if (
file_exists($folder.$name)) { unlink($folder.$name) ; }
                if (!@
move_uploaded_file($file,$folder.$name)) {
                    
$global['form']['error'] = 'Die Datei konnte nicht hochgeladen werden. Bitte wenden Sie sich an den Support<br /><br />' ;
                } else {
                    
chmod ($folder.$name0755);
                    
$global['form']['error'] .= '<strong>Datei hochgeladen.</strong><br />' ;
                    
header('Location: '.$global['path'].'?admin=import&b='.$ext) ;
                }
            } 
hier ist die erste grobe routine zum verarbeiten der csv daten:
PHP-Code:
$tpl file_get_contents('./tpl/import.html') ;
            
            
$csv    file_get_contents('./../temp/temp.'.$_GET['b']) ;
    
            
#$csv    = utf8_decode($csv) ;
            
if (!preg_match("#\n#s"$csv)) { 
                
$csv    preg_replace("#\r#s""\n"$csv) ; 
            } else {
                
$csv    preg_replace("#\r#s"""$csv) ; 
            }
            
            
$csv    preg_replace("#\"#s"""$csv) ; 
            
$csv    explode("\n"$csv) ; 
und hier noch fix der import der csv daten in die datenbank:
PHP-Code:
for ($i 1$i <= $csv_i$i++) {

                    
$sql 'INSERT INTO `datasets` (
                                                    `id`, 
                                                    `author`, 
                                                    `year`,
                                                    `title`,
                                                    `src`,
                                                    `link`,
                                                    `reference_src`,
                                                    `languages`,
                                                    `country`,
                                                    `doctype`,
                                                    `timestamp`
                                                ) VALUES (
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['id']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['author']]).'",  
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['year']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['title']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['src']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['link']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['reference_src']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['languages']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['country']]).'", 
                                                    "'
.mysql_real_escape_string($data[$i][$data_keys['doctype']]).'",
                                                    NOW( )
                                                );' 
;
                
                    
mysql_query($sql) ;
                    
$csv_k++ ;
        
                } 
im großen und ganz läuft das ... eben mit den ganz fiesen sonderzeichen gehts nicht voran!

hat jmd von euch mal nen tip, woher der wind weht?

grüße,
jon
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #2 (permalink)  
Alt 21-09-2009, 17:51
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

ich vermute, dass die CSV in ISO-8859-2 oder CP1250 vorliegt. Kannst du das mal überprüfen? Wenn das der Fall ist, helfen dir die mbstring-Funktionen.

Gruß,

Amica
Mit Zitat antworten
  #3 (permalink)  
Alt 22-09-2009, 09:25
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ja und nein ... ich hab es vom document encoding her, mit utf8 als auch mit ISO-8859-1 probiert.

noch ne idee?
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #4 (permalink)  
Alt 22-09-2009, 11:00
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von xJonx Beitrag anzeigen
ja und nein ... ich hab es vom document encoding her, mit utf8 als auch mit ISO-8859-1 probiert.
Ich rede aber von ISO-8859-2
Mit Zitat antworten
  #5 (permalink)  
Alt 22-09-2009, 11:03
xJonx
 Registrierter Benutzer
Links : Onlinestatus : xJonx ist offline
Registriert seit: Mar 2006
Ort: Bielefeld
Beiträge: 421
xJonx zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

ok, ich bin jetzt davon ausgegangen das du meinst das
ich checken soll ob es in dem encoding ist.

soll ich demnach also mal dieses encoding ausprobieren?
__________________
Design & Coding with a breeze of madness at xjonx
Mit Zitat antworten
  #6 (permalink)  
Alt 22-09-2009, 11:23
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Also ich meine nach wie vor, dass du rauskriegen sollst, in welchem Zeichensatz die Datei vorliegt. Dass es nicht ISO 8859-1 sein kann, erkennt man schon an dem Buchstaben selbst, weil es den in Latin-1 nicht gibt. Latin-2 (also ISO 8859-2) ist auch eher unwahrscheinlich, wenn die Datei von einem Windows-Rechner kommt. Also ist es (wenn es kein UTF-8 ist) höchstwahrscheinlich CP1250. Du solltest jetzt also prüfen, ob die Datei wirklich als CP1250 vorliegt.

Gruß,

Amica

Edit: Du kannst die Datei auch mit nem Hex-Editor öffnen und mir sagen, welchen Bytewert das Ś hat.

Geändert von AmicaNoctis (22-09-2009 um 11:32 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Sonderzeichen bzw. Umlaute Anpassen?! -=Taipan=- PHP Developer Forum 23 12-06-2007 21:32
umlaute und sonderzeichen entfernen G.P. PHP Developer Forum 6 03-05-2005 13:39
Umlaute + Sonderzeichen rausfiltern merlin_76 Apps und PHP Script Gesuche 8 29-04-2005 10:51
Sonderzeichen bzw. Umlaute firat SQL / Datenbanken 2 22-04-2005 22:02
Umlaute und Sonderzeichen abfragen Berni PHP Developer Forum 1 13-12-2000 13:59

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:57 Uhr.