![]() |
idhttp.get und griechische buchstaben
hallo
ich verwende Delhi xe8 und ich moechte griechische charakter in Databank importieren aber wirt immer als ?????? importiert DELPHI CODE: function MultiplyTwoNumbers(a,b: string):string; var url,key: string; H: TIdHttp; SS: TStringStream; begin // Prepare the URL key:='MEINPASSWORT123'; a := utf8decode(a); url := 'http://-----------------------/test.php?T1=' + a +'&key='+key; H := TIdHttp.Create(nil); try SS := TStringStream.Create('', TEncoding.UTF8); try form1.IdHTTP1.get(url, SS); Result := SS.DataString; finally SS.Free; end; finally H.Free; end; end; ************************************************** ********************** PHP CODE: <?php define("KEY","MEINPASSWORT123"); define('DB_SERVER',"localhost"); define('DB_NAME',"*************"); define('DB_USER',"*************"); define('DB_PASSWORD',"*************"); $conn = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD); mysql_select_db(DB_NAME, $conn); mysql_query("SET NAMES 'utf8'", $conn); mysql_query("SET CHARACTER SET 'utf8'", $conn); //include("db.php"); if(isset($_GET['key'])) { if($_GET['key'] == KEY) { if(isset($_GET['T1'])) { $T1 = mysql_real_escape_string($_GET['T1']); $T2 = mysql_real_escape_string($_GET['T2']); $result = mysql_query("INSERT INTO test(onoma) VALUES('".$T1."') ") or die(mysql_error()); if(mysql_affected_rows() == 1) { $result = "αποθυκευτικε"; } else $result = "Error MySQL-Datenbank"; } else $result = "Error1"; } else $result = "Error2"; } else $result = "Error3"; print_r($T1); ?> ************************************************** ********************* mit obere functionen werden dir griechiscge zeichen als ????????????? in Datenbank eingetragen? ich bit um hilfe? danke |
AW: idhttp.get und griechische buchstaben
Ich tippe darauf das die fehlende URL-Encoding das Problem darstellt:
![]() UTF8 alleine reicht nicht. |
AW: idhttp.get und griechische buchstaben
Pssst, ich will ja nichts sagen, aber du hättest in deinem alten Thema auch gern weitermachen können :zwinker:
![]() |
AW: idhttp.get und griechische buchstaben
Hmm..
Hatte da auch mit PHP und IDHttp experimentiert.. Alle Parameter hinter dem ? in der URL müssen speziell codiert sein, gerade bei Sonderzeichen.. Besser die Daten mit Post, statt mit Get an das PHP-Script übergeben, da ist mehr möglich ;) |
AW: idhttp.get und griechische buchstaben
Zitat:
|
AW: idhttp.get und griechische buchstaben
Zitat:
Wie mache ich es mit Post ? Ich habe mit Post auch versucht aber immer wieder die ?????? |
AW: idhttp.get und griechische buchstaben
Welcher Zeichensatz wird denn von der Datenbank verwendet?
|
AW: idhttp.get und griechische buchstaben
Zitat:
|
AW: idhttp.get und griechische buchstaben
Ich habe keine Ahnung ob es daran liegen kann. Aber lass doch mal den ganzen Streamquatsch weg und speichere mit IdHTTP Get direkt in eine Stringvariable.
|
AW: idhttp.get und griechische buchstaben
[QUOTE=stathis;1371355]
Zitat:
Server-Typ: MySQL Server-Version: 5.5.54-cll - MySQL Community Server (GPL) Protokoll-Version: 10 Benutzer: Server-Zeichensatz: UTF-8 Unicode (utf8) |
AW: idhttp.get und griechische buchstaben
Das hast du doch oben schon einmal geschrieben. Probier doch mal den nutzlosen Stream wegzulassen.
|
AW: idhttp.get und griechische buchstaben
Zitat:
hast du ein klein Code? |
AW: idhttp.get und griechische buchstaben
Na so. Einfach den ganzen Stream weg und
Delphi-Quellcode:
Guck dir in der Codevervollständigung doch mal an was du angezeigt bekommst. Scheint mir nämlich so, als hättest du deinen Code aus Beitrag 1 irgendwo kopiert aber nicht verstanden :P
Result := form1.IdHTTP1.get(url);
|
AW: idhttp.get und griechische buchstaben
Eventuell Literatur zum Thema?
![]() ![]() ![]() Im Zusammenhang von Infos aus erstem und zweitem Link:
SQL-Code:
Ohne Stream?
CREATE TABLE table_name (
id INT(11) NOT NULL, column_name VARCHAR(50) CHARACTER SET utf8 COLLATE greek_general_ci NOT NULL )
Delphi-Quellcode:
Result := form1.IdHTTP1.get(url);
|
AW: idhttp.get und griechische buchstaben
Zitat:
und ich versuche es zu lernen. Das Result von PHP bekomme ich normal zurueck die Griechische Buchstaben werden normal in Delphi angezeigt. Aber wenn ich daten mit idhttp.get zu php sende, damit diese Daten in Datenbank importiert werden, die werden in Datenbank als ???????????? angezeigt. Danke |
AW: idhttp.get und griechische buchstaben
Schau Dir mal den Unterschied zwischen Get und Post an:
![]() Zitat:
Delphi-Quellcode:
machen kann.
idHTTP.Post
|
AW: idhttp.get und griechische buchstaben
Zitat:
|
AW: idhttp.get und griechische buchstaben
Zitat:
ich habe ich schon. Ich versuche ich es mit Post. |
AW: idhttp.get und griechische buchstaben
Zitat:
Ich habe es Ich versuche mit Post |
AW: idhttp.get und griechische buchstaben
Denk dran, dass dein PHP-Script dann auch mit $_POST statt $_GET reagieren muss.
|
AW: idhttp.get und griechische buchstaben
Es gibt nicht nur eine Stelle für das Encoding.
Für jedes Feld, die Standardvorgabe für die DB, das Encoding der Connection und zuletzt auch die Codierung der lokalen Strings, bzw. die Übergabe an die DB-Komponenten. |
AW: idhttp.get und griechische buchstaben
:-D Ich danke alleeeeee
Und die Loesung: **********DELPHI**************** procedure TForm3.Button2Click(Sender: TObject); var lHTTP: TIdHTTP; lParamList: TStringList; result,key,a : string; begin lParamList := TStringList.Create; lParamList.Add('T1=τεστ'); lParamList.Add('key=MEINPASSWORT123'); lHTTP := TIdHTTP.Create(nil); try Result := lHTTP.Post('http://........../test.php', lParamList); finally lHTTP.Free; lParamList.Free; end; ShowMessage(result); end; ***********PHP****************** <?php header("Content-Type: text/html; charset=UTF-8"); define("KEY","MEINPASSWORT123"); define('DB_SERVER',"localhost"); define('DB_NAME',"????????????"); define('DB_USER',"???????????"); define('DB_PASSWORD',"??????????????"); $conn = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD); mysql_select_db(DB_NAME, $conn); mysql_query("SET NAMES 'utf8_general_ci'", $conn); mysql_query("SET CHARACTER SET 'utf8_general_ci'", $conn); $T1 = $_POST["T1"]; $T2 = $_POST["name"]; mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); if(isset($_POST['key'])) { if($_POST['key'] == KEY) { if(isset($_POST['T1'])) { $result = mysql_query("INSERT INTO test(onoma) VALUES('".$T1."') ") or die(mysql_error()); if(mysql_affected_rows() == 1) { $result = "αποθηκεύτηκε"; } else $result = "Error MySQL-Datenbank"; } else $result = "Error1"; } else $result = "Error2"; } else $result = "Error3"; echo "WWW Result:".$result; ?> ************************************************** |
AW: idhttp.get und griechische buchstaben
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz