Umlautproblem im Webfront (UTF8 vs. ANSI)

Hallo Zusammen,
früher funktionierte das Anzeigen von Umlauten im Webfront tadellos. Seit IPS 4 habe ich hier jedoch Probleme.
Sobald ich im IPS_Logger Strings mit Umlauten oder Sonderzeichen ausgeben will, werden diese nicht korrekt angezeigt.
Dieses Wochenende bin ich das Problem endlich einmal angegangen.

Wenn ich in Notepad++ die PHP-Dateien von „UTF-8 ohne BOM“ in „ANSI“ konvertiere, dann werden die Umlaute im Webfront korrekt angezeigt.
Sobald ich in der IPS-Console jedoch diese Datei editiere und speichere, wird die Kodierung wieder zu „UTF-8 ohne BOM“ geändert und das Umlautproblem besteht wieder.

Wie kann man dieses Problem beheben?
In welcher Kodierung sollte alle PHP-Dateien von IPS korrekterweise abgespeichert werden?
Die Module sind beispielsweise alle „ANSI“, solange ich die Datei nicht in der IPS-Console editiere…

Vielen Dank schon mal für jegliche Tipps und Anregungen!

Kannst du mir kurz aushelfen, ob der IPSLogger die Sachen in einer HTMLBox oder einer HTMLBox mit IFrame abbildet?

Ab IP-Symcon 4.x ist das WebFront in UTF-8 und alle Skripte werden beim Speichern auch nach UTF-8 konvertiert. Ab IP-Symcon 4.1 kannst du dies auch automatisch für alle Skripte über das Utils Control machen lassen. Somit wäre eher die Frage, wo die UTF-8 Konvertierung im IPSLogger verloren gehen könnte… denn korrekt wäre, wenn UTF-8 bis ins WebFront weitergereicht wird.

paresy

Hallo,
im Anhang findest du ein ganz triviales Beispiel, welches bereits eine Falschanzeige verursacht.

Was meinst du mit „Utils Control“?
Was müsste ich hierfür machen?

Hallo!

Ich habe das selbe Problem.

Gruß
Erwoolf

Du mußt auf die Version 4.1 gehen!
Leider erst ab der Version hat die Instanz mit dem Namen „Utils Handler“ (zu finden in den Kern Instanzen) ein Bedienfeld „Umlaute korrigieren“. Damit wird Dir eine Liste von Skripten und Variablen angeboten, die betroffen sind.
Du kannst dann in einem Rutsch in den aktivierten Objekten die „Kodierung korrigieren“.

Mir hat es zusammen mit anderen Maßnahmen geholfen, meine Umlautprobleme zu beseitigen und ich hätte mir gewünscht, dass dieses Tool schon bei der Version 4.0, als ja diese Umlautprobleme massiv auftraten, dabei gewesen wären.:banghead:

Viele Grüsse
Harald

Ich habe mir letztes Jahr eine Subskription gekauft, als großspurig die Version 4.0 angekündigt wurde.
Nachdem diese endlich veröffentlicht wurde, musste ich feststellen, dass plötzlich der 1-Wire USB-Stick nicht mehr unterstützt wird. Also habe ich weiterhin die „veraltetete“ IPS-Version benutzt, bis endlich der 1-Wire-Stick wieder funktioniert hat. Somit waren Monate der Subskription verschwendet.
Meine Subskription ist vor ca. 1 Monat abgelaufen und nun soll ich eine Subskription abschließen, damit ich die Version 4.1 installieren kann? Mit Sicherheit nicht!

Werden die Sachen die released werden in irgendeiner Weise getestet?
Langsam aber sicher nervt micht IPS immer mehr…

Wie kann das Problem in der Version 4.0 behoben werden?

Hi Jürgen,

ich muss schmunzeln: so ähnlich geht es mir auch. Deshalb bin ich produktiv noch immer auf V3.4. Nicht, dass ich ein Problem damit hätte, Subscription zu zahlen - sogar sehr gern. Allerdings sehe ich die dafür gelieferte Leistung immer kleiner werden.
Die 4.0 scheint wohl eine Fehlgeburt zu sein - selbst der Hersteller empfiehlt seit Monaten in verschiedenen Threads mit Fehlermeldungen zur 4.0, statt dessen auf die V4.1 zu gehen. Aus meiner Sicht haben weder die V4.0 noch die V4.1 den Reifegrad der V3.4 erreicht. Für User mit umfangreichem und über Jahre gewachsenem IPS-Biotop kann (muss aber nicht) das ein ziemliches Problem darstellen. Somit ist IPS wohl eher ein Bastel- statt Produktiv-System. Das Testing machen hier grundsätzlich die User.
Interessanterweise geht das auch der überwiegenden Mehrheit der IPS-User (zu der ich Kontakt habe) auch so… wird man sich wohl mit abfinden müssen…:wink:

Dass die Umlautprobleme (zukünftig) gelöst sind, ist klasse und entspricht dem IPS-Anteil, der mich immer wieder begeistert: Fehler und (z.T. sogar individuelle) Probleme werden über das Forum sehr schnell behoben. Was die Community, vor allem aber Paresy praktisch rund um die Uhr hier leisten, ist großartig. (Einschränkung: Im realen Leben trage ich Personalverantwortung. Hätte ich einen Mitarbeiter mit den Arbeitszeiten von Paresy, würde ich mir ernsthaft Gedanken machen…) Als Laie habe ich den positiven Eindruck, dass die technische Entwicklung ständig voran getrieben wird. IPS 4.0 steht aus meiner Sicht für einen größeren technischen Schritt nach vorn. :loveips:

Da fängt leider das Aber an: Wie Version 4.0 auf den Markt geworfen wurde, entspricht m.E. allen gängigen Klischees. Es wirkte auf mich völlig unausgereift, die Fehleranzahl spricht ja für sich: Das Changelogenthält über 100 Fix- und nur ca. 10 Neu-Einträge. Vor dem Hintergrund ist die Aussage „Profitieren Sie [mit der Subskription] von den neusten Funktionen und Modulen, an denen kontinuierlich gearbeitet wird.“ schon fast Satire. Diesbezüglich wurde sehr wenig fürs Geld geboten.

Grüße
galleto

Hallo!

Ich habe die V 4.1.
Leider hilft bei mir der „Utils Handler“ nicht. :confused:

z.B.
Mein Highchart von der Küche:
Problem in Zeile 73 u. 133. „Küche“ wird als „Küche“ und „°C“ wird als [b]„°C“

[/b]

<?php
	// bei der Konfiguration unbedingt auf die Groß/Kleinschreibung achten
	// es wurde versucht folgende Namensgebeung in der Konfiguration zu verwenden
	// Parameter mit kleinen Anfangsbuchstaben = Parameter welche von Highcharts übnernommen wurden. Siehe dazu: http://www.highcharts.com/ref/
	// Parameter mit großen Anfangsbuchstaben = für das IPS-Highcharts-Script eingeführte Parameter

	Global $CfgDaten; // damit kann der Script auch von anderen Scripten aufgerufen werden und bereits mit CfgDaten vorkonfiguriert werden

	// IPS Variablen ID´s
	$CfgDaten['ContentVarableId']= 54675 /*[Highcharts\Heizkörper\Küche\Küche Tag]*/;  // ID der String Variable in welche die Daten geschrieben werden (-1 oder überhaupt nicht angeben wenn die Content Variable das übergordnete Element ist)
	$CfgDaten['HighChartScriptId']= 37316 /*[Highcharts\Scripte\Highcharts_V3.00]*/;  				// ID des Highcharts Scripts

	// Highcharts oder Highstock (default = Highcharts
	$CfgDaten['Ips']['ChartType'] = 'Highcharts';

	$zeitwahl = GetValue(50009 /*[Highcharts\Zeitumschaltung]*/);
// Zeitraum welcher dargestellt werden soll (kann durch die Zeitvorgaben in den Serien verändert werden)
    $CfgDaten['StartTime'] = mktime(date("H", time()),0,0, date("m", time()), date("d",time())-$zeitwahl, date("Y",time())); // ab heute 00:00 Uhr
    $CfgDaten['EndTime'] = mktime(date("H", time())+1,30,0, date("m", time()), date("d",time()), date("Y",time())); // ab heute 23:59 Uhr, oder //$CfgDaten['EndTime'] = time();   // = bis jetzt
	// damit wird die Art des Aufrufes festgelegt
	$CfgDaten['RunMode'] = "script"; 	// file, script, popup

	if ($CfgDaten['RunMode'] == "popup")
	{
		$CfgDaten['WebFrontConfigId'] = 33329 /*[WebFront OG]*/;
		$CfgDaten['WFCPopupTitle'] = "Ich bin der Text, welcher als Überschrift im Popup gezeigt wird";
	}

	// Übergabe der IP-Adresse und des Ports für die Darstellung im Dashboard
	// Wichtig! Wenn Darstellung in Webfront diese Variablen auskommentieren
	//$CfgDaten['Ips']['Dashboard']['Ip'] = "127.0.0.1";
	//$CfgDaten['Ips']['Dashboard']['Port'] = "82";


	// Serienübergreifende Einstellung für das Laden von Werten
	$CfgDaten['AggregatedValues']['HourValues'] = -3;      // ist der Zeitraum größer als X Tage werden Stundenwerte geladen
	$CfgDaten['AggregatedValues']['DayValues'] = -14;       // ist der Zeitraum größer als X Tage werden Tageswerte geladen
	$CfgDaten['AggregatedValues']['WeekValues'] = -60;      // ist der Zeitraum größer als X Tage werden Wochenwerte geladen

	$CfgDaten['AggregatedValues']['NoLoggedValues'] = 60; 	// ist der Zeitraum größer als X Tage werden keine Boolean Werte mehr geladen, diese werden zuvor immer als Einzelwerte geladen	$CfgDaten['AggregatedValues']['MixedMode'] = false;     // alle Zeitraumbedingungen werden kombiniert
	$CfgDaten['AggregatedValues']['MixedMode'] = true;
	// Systematik funktioniert jetzt additiv. D.h. die angegebenen Werte gehen ab dem letzten Wert
	//
	//            -5 Tage           -3 Tage    					EndTime
	// |           |              	|            				 |
	// |           |DayValue = 2     |HourValues = 3          |
	// |Tageswerte |Stundenwerte     |jeder geloggte Wert     |

	// **************************************************************************************
	// *** Highcharts Options ***
	// **************************************************************************************
	// Ab hier werden die Bereiche des Highchart-Objektes parametriert.
	// Dieser Bereich wurde (soweit möglich) identisch der Originalstruktur gehalten.
	// Informationen über  die Parametrierung findet man unter http://www.highcharts.com/ref/

	// **************************************************************************************
	// *** chart *** http://www.highcharts.com/ref/#chart
	// **************************************************************************************
	// $CfgDaten['chart']['zoomType'] = "'x'";			//default: $CfgDaten['chart']['zoomType'] = "'xy'";

	// **************************************************************************************
	// *** credits *** siehe http://www.highcharts.com/ref/#credits
	// **************************************************************************************
	// $CfgDaten['credits']['text'] = "used by IPS";
	// $CfgDaten['credits']['href'] = "http://www.ip-symcon.de/forum/f53/highcharts-multigraph-v1-0-a-17625 /*[HomeMatic\Leistungsmessung\mob_1\MAINTENANCE\RSSI_DEVICE]*//#post120721";

	// **************************************************************************************
	// *** title *** siehe http://www.highcharts.com/ref/#title
	// **************************************************************************************
	// $CfgDaten['title']['text'] = "Chart-Überschrift";  // Überchrift des gesamten Charts
	//		-> veraltet: 'Title' -> verwende ['title']['text']

	$CfgDaten['title']['text'] = "Küche";

	// **************************************************************************************
	// *** subtitle *** siehe http://www.highcharts.com/ref/#subtitle
	// **************************************************************************************
	// $CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%" // Sub-Überschrift. Wenn nichts angegeben wird wird dieser String als Default verwendet
	//		-> veraltet: 'SubTitle' -> verwende ['subtitle']['text']
	// $CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i"	// z.B.: "(D) d.m.Y H:i" (wird auch als Default herangezogen wenn nichts konfiguriert wurde)
	//		-> veraltet: 'SubTitleDateTimeFormat' -> verwende ['subtitle']['Ips']['DateTimeFormat']
	//    -> entfallen: 'SubTitleFormat' -> unnötiger Paramter, wird jetzt in ['subtitle']['text'] angegeben

	$CfgDaten['subtitle']['text'] = "Zeitraum: %STARTTIME% - %ENDTIME%";
	$CfgDaten['subtitle']['Ips']['DateTimeFormat'] = "(D) d.m.Y H:i";

	// **************************************************************************************
	// *** tooltip *** http://www.highcharts.com/ref/#tooltip
	// **************************************************************************************
	// $CfgDaten['tooltip']['enabled'] = false;
	// $CfgDaten['tooltip']['formatter'] = Null; // IPS erstellt selbständig einen Tooltip
	// $CfgDaten['tooltip']['formatter'] = ""; // Standard - Highcharts Tooltip

	// **************************************************************************************
	// *** exporting *** http://www.highcharts.com/ref/#exporting
	// **************************************************************************************
	// $CfgDaten['exporting']['enabled'] = true;

	// **************************************************************************************
	// *** lang *** http://www.highcharts.com/ref/#lang
	// **************************************************************************************
	// $CfgDaten['lang']['resetZoom'] = "Zoom zurücksetzten";

	// **************************************************************************************
	// *** legend *** http://www.highcharts.com/ref/#legend
	// **************************************************************************************
	// $CfgDaten['legend']['backgroundColor'] = '#FCFFC5';

	// **************************************************************************************
	// *** xAxis *** http://www.highcharts.com/ref/#xAxis
	// **************************************************************************************
	// $CfgDaten['xAxis']['lineColor'] = '#FF0000';
	// $CfgDaten['xAxis']['plotBands'][] = array("color"=>'#FCFFC5',"from"=> "@Date.UTC(2012, 3, 29)@","to"=> "@Date.UTC(2012, 3, 30)@");

	// **************************************************************************************
	// *** yAxis *** http://www.highcharts.com/ref/#yAxis
	// **************************************************************************************
	// $CfgDaten['yAxis'][0]['title']['text'] = "Temperaturen"; // Bezeichnung der Achse
	//		-> veraltet: 'Name' und 'TitleText' -> verwende ['title']['text']
	// $CfgDaten['yAxis'][0]['Unit'] = "°C";	// Einheit für die Beschriftung die Skalenwerte
	//	$CfgDaten['yAxis'][0]['min'] = 0; // Achse beginnt bei Min (wenn nichts angegeben wird wird der Min der Achse automatisch eingestellt)
	//	$CfgDaten['yAxis'][0]['max'] = 40; // Achse geht bis Max (wenn nichts angegeben wird wird der Max der Achse automatisch eingestellt)
	//		-> veraltet: 'Min' und 'Max'
	//	$CfgDaten['yAxis'][0]['opposite'] = false; // Achse wird auf der rechten (true) oder linken Seite (false) des Charts angezeigt (default = false)
	//		-> veraltet: 'Opposite'
	//	$CfgDaten['yAxis'][0]['tickInterval'] = 5; // Skalenwerte alle x (TickInterval)
	//		-> veraltet: 'TickInterval'
	//    -> entfallen: 'PlotBands' -> verwende ['yAxis'][0]['plotBands'],  (siehe Beispiel 'cfg - drehgriff und tf-kontakt')
	//    -> entfallen: 'YAxisColor' -> verwende ['yAxis'][0]['title']['style']
	//    -> entfallen: 'TitleStyle'-> verwende ['yAxis'][0]['title']['style']

	$CfgDaten['yAxis'][0]['title']['text'] = "Temperaturen";
	$CfgDaten['yAxis'][0]['Unit'] = "°C";
	$CfgDaten['yAxis'][0]['opposite'] = false;
	$CfgDaten['yAxis'][0]['min'] = 0;


	$CfgDaten['yAxis'][1]['title']['text'] = "Ventilstellung";
	$CfgDaten['yAxis'][1]['Unit'] = "%";
	$CfgDaten['yAxis'][1]['opposite'] = true;
	$CfgDaten['yAxis'][1]['min'] = 0;
	$CfgDaten['yAxis'][1]['max'] = 100;

	$CfgDaten['yAxis'][2]['title']['text'] = "Fenster";
	$CfgDaten['yAxis'][2]['Unit'] = "";
	$CfgDaten['yAxis'][2]['opposite'] = true;
	$CfgDaten['yAxis'][2]['min'] = 0;
	$CfgDaten['yAxis'][2]['max'] = 1;



	// **************************************************************************************
	// *** series *** http://www.highcharts.com/ref/#series
	// **************************************************************************************
	// $serie['name'] = "Temperatur; // Name der Kurve (Anzeige in Legende und Tooltip)
	//		-> veraltet: 'Name' -> verwende [series']['name']
	// $serie['Unit'] = "°C"; // Anzeige in automatisch erzeugtem Tooltip
	// 	wenn $serie['Unit'] = NULL; // oder Unit wird gar nicht definiert, wird versucht die Einheit aus dem Variablenprofil automatisch auszulesen
	// $serie['ReplaceValues'] = false; // Werte werden wie geloggt übernommen
	// 	$serie['ReplaceValues'] = array(0=>0.2,1=>10) // der Wert 0 wird in 0.2 geändert, der Wert 1 wird in 10 geändert
	//   	das macht für die Darstellung von Boolean Werte Sinn, oder für Drehgriffkontakte (Werte 0,1,2)
	// $serie['type'] = 'spline'; // Festlegung des Kuventypes (area, areaspline, line, spline, pie, Column)
	// $serie['yAxis'] = 0; // Nummer welche Y-Achse verwendet werden soll (ab 0)
	// 	-> veraltet: 'Param' -> verwende die Highcharts Parameter - sollte eigentlich noch so funktionieren wie in IPS-Highcharts V1.x
	// $serie['AggType'] = 0 // Festlegung wie die Werte gelesen werden soll (0=Hour, 1=Day, 2=Week, 3=Month, 4=Year), hat Vorrang gegenüber den Einstellungen in AggregatedValues
	//    wird kein AggType definiert werden alle gelogten Werte angezeigt
	// $serie['AggNameFormat'] = "d.m.Y H:i"; // (gilt nur bei den Pies, wenn eine Id verwendet wird), entspricht dem PHP-date("xxx") Format, welches das Format der Pie Namen festlegt, wenn keine Eingabe werden Default Werte genommen
	// $serie['Offset'] = 24*60*60; hiermit können Kurven unterschiedlicher Zeiträume in einem Chart dargestellt. Angabe ist in Minuten
	//	$serie['StartTime'] = mktime(0,0,0,1,1,2012); 	// wird für die entsprechende Serie eine Anfangs- und/oder Endzeitpunkt festgelegt wird dieser verwendet. Ansonsten wird
	// $serie['EndTime'] = mktime(0,0,0,2,1,2012);  		// der Zeitpunkt der Zeitpunkt aus den $CfgDaten genommen
	// $serie['ScaleFactor'] = 10; // Skalierungsfaktor mit welchem der ausgelesene Werte multipliziert wird
	// $serie['RoundValue'] = 1; // Anzahl der Nachkommastellen
	//	$serie['AggValue'] ='Min' // über AggValue kann Min/Max oder Avg vorgewählt werden (Default bei keiner Angabe ist Avg)
	//		ist sinnvoll wenn nicht Einzelwerte sondern Stundenwerte, Tageswerte, usw. ausgelesen werden
	// $serie['data'] = array('TimeStamp'=> time(),'Value'=12) // hier kann ein Array an eigenen Datenpunkten übergeben werden. In diesem Fall werden für diese Serie keine Daten aus der Variable gelesenen.



	$serie = array();
	$serie['name'] = "Ist-Temperatur";
	$serie['Id'] = 31866 /*[HomeMatic\Heizkoerper\Kueche\Wandthermostat\WEATHER_TRANSMIT\TEMPERATURE]*/;
	$serie['Unit'] = "°C";
	$serie['ReplaceValues'] = false;
	$serie['type'] = "spline";
	$serie['yAxis'] = 0;
	$serie['color'] = '#FF0000';
	$serie['marker']['enabled'] = true;
	$serie['shadow'] = true;
	$serie['lineWidth'] = 2;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;




	$serie = array();
	$serie['name'] = "Soll-Temperatur";
	$serie['Id'] = 23990 /*[HomeMatic\Heizkoerper\Kueche\Wandthermostat\THERMALCONTROL_TRANSMIT\SET_TEMPERATURE]*/;
	$serie['Unit'] = "°C";
	$serie['ReplaceValues'] = false;
//	$serie['RoundValue'] = 0;
	$serie['type'] = "line";
	$serie['step'] = True;
	$serie['yAxis'] = 0;
	$serie['color'] = '#0000ff';
	$serie['marker']['enabled'] = true;
	$serie['shadow'] = true;
	$serie['lineWidth'] = 2;
	$serie['states']['hover']['lineWidth'] = 1;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;




	$serie = array();
	$serie['name'] = "Ventilposition";
	$serie['Id'] = 19648 /*[HomeMatic\Heizkoerper\Kueche\Heizkörper\CLIMATECONTROL_RT_TRANSCEIVER\VALVE_STATE\Position]*/;
	$serie['Unit'] = "%";
	$serie['ReplaceValues'] = false;
	$serie['type'] = "line";
	$serie['step'] = true;
	$serie['yAxis'] = 1;
	$serie['color'] = '#00ff00';
	$serie['shadow'] = true;
	$serie['lineWidth'] = 1;
	$serie['states']['hover']['lineWidth'] = 1;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;


	$serie = array();
	$serie['name'] = "Luftfeuchte";
	$serie['Id'] = 46930 /*[HomeMatic\Heizkoerper\Kueche\Wandthermostat\WEATHER_TRANSMIT\HUMIDITY\Luftfeuchte]*/;
	$serie['Unit'] = "%";
	$serie['ReplaceValues'] = false;
	$serie['type'] = "line";
	$serie['step'] = false;
	$serie['yAxis'] = 1;
	$serie['shadow'] = true;
	$serie['lineWidth'] = 1;
	$serie['states']['hover']['lineWidth'] = 2;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;

	$serie = array();
	$serie['name'] = "Fenster";
	$serie['Id'] = 18478 /*[HomeMatic\Kueche\Fenster\SHUTTER_CONTACT\State Float]*/;
	$serie['Unit'] = "";
	$serie['ReplaceValues'] =false;
	$serie['type'] = "line";
	$serie['step'] = True;
	$serie['yAxis'] = 2;
	$serie['color'] = '#FF4000';
	$serie['shadow'] = true;
	$serie['states']['hover']['lineWidth'] = 1;
	$serie['marker']['enabled'] = false;
	$serie['marker']['states']['hover']['enabled'] = true;
	$serie['marker']['states']['hover']['symbol'] = 'circle';
	$serie['marker']['states']['hover']['radius'] = 4;
	$serie['marker']['states']['hover']['lineWidth'] = 1;
	$CfgDaten['series'][] = $serie;

	// Highcharts-Theme
	//	$CfgDaten['HighChart']['Theme']="grid.js";   // von Highcharts mitgeliefert: dark-green.js, dark-blue.js, gray.js, grid.js
	$CfgDaten['HighChart']['Theme']="ips.js";   // IPS-Theme muss per Hand in in Themes kopiert werden....

	// Abmessungen des erzeugten Charts
	$CfgDaten['HighChart']['Width'] = 0; 			// in px,  0 = 100%
	$CfgDaten['HighChart']['Height'] = 500; 		// in px

	// -------------------------------------------------------------------------------------------------------------------------------------
   // und jetzt los ......
    $s = IPS_GetScript($CfgDaten['HighChartScriptId']);     // Id des Highcharts-Scripts
    include($s['ScriptFile']);

    RunHighcharts($CfgDaten);


?>

@Brovning: Ich werde mir (leider erst) zum Ende der Woche den IPSLogger aufbauen, um das Problem nachzustellen. Dann kann ich dir bestimmt eine gute Lösung für das Problem geben.

@Erwoolf: Ich befürchte das liegt irgendwo an den Interna von Highcharts. Zu dem Thema gab es auch schon ein paar Beiträge. Ich weiß nur ad hoc nicht genau, ob dort jemand eine Lösung dafür hatte.

paresy

Hallo Paresy,

was bewirkt denn das „Umlaute korrigieren“ im UtilsHandler?

Ich habe etliche assoziative Arrays die ich mit Klartextnamen abfrage und bekomme seit 4.1 in vielen Scripten Indexfehler.

z.B. Arrays mit Raumnamen wie etwa „Küche“, oder meine Bundesligatabellen mit einem Array für die Vereinslogos „1.FC Köln“, „Bayern München“ etc.

Ich arbeite fast nur mit assoziativen Arrays und kann nicht an jeder Stelle Konvertierungsroutinen einbauen. Bei Eigennamen und für die Namens-Darstellung braucht es nunmal die blöden Umlaute.

Warum funktioniert dass nun nicht mehr, wenn es in PHP eigentlich tut? Oder täusche ich mich da?

Das verursacht viel Aufwand und ist mehr als ärgerlich. Wenn mir das bewußt gewesen wäre, hätte ich die Umstellung von 3.4 auf 4.0/4.1 nicht durchgeführt. Nun ist es zu spät und ich muss leider durch. Die Umlaute werden mich wohl noch viel beschäftigen, da ich den Eindruck habe, dass das von den IPS-Entwicklern nicht wirklich beherrscht wird.

Grantige Grüße aus dem Unterallgäu :banghead:
Harry

… ohne den Finger in die Wunde legen zu wollen: ich denke, dass das Thema einmal​ konsequent von Anfang bis Ende durch dekliniert werden muss. Angefangen von der Behandlung im Konsolen-Editor über das Anlegen/Speichern von Scripten und die Ausgabe im WFE (unabhängig vom Browser. Und das für jede Plattform separat betrachtet. Es kann schon nicht sein, dass es unter Linux anders reagiert als unter Windows.
Und wenn das von der Herstellerseite nicht in den Griff zu bekommen ist (weil z.B. kein Einfluss auf die PHP-Umgebung), dann wenigstens eine detaillierte Dokumentation für Entwickler.

Das würde mich sehr freuen.
Vielen Dank schon mal!

@Erwoolf:
Pack die strings in ein utf8_decode(). So funktionierts bei mir.
Gruß
hoep

Gesendet von iPhone mit Tapatalk

Hallo,
vielen Dank, so funktioniert es zumindest als Workarround!

Der IPSLogger macht leider in der HTMLBox alle Umlaute, welche in UTF-8 kodiert sind, kaputt.

Wenn du folgende Zeilen löscht, dann funktioniert alles auch mit UTF-8 korrekt.
Diese Zeile ist insgesamt zwei Mal vorhanden!

Datei: IPSLogger_Output.inc.php


$Msg  = htmlentities($Msg, ENT_COMPAT, 'ISO-8859-1');

Ich habe mal Brownson benachrichtigt, damit er sich das auch ansieht und ggf. direkt in der Library fixen kann.

paresy

Funktioniert! Vielen Dank!

Update des IPSLoggers ist online …

Das fixt aber nicht das Highcharts Problem, oder ?

Vielen Dank!