Hallo Immoscout Team,
wir haben ein Problem mit Umlauten und der maximalen Länge von Textfeldern bei der Erstellung von Immobilien. Und zwar scheint die Textlänge in der Validierung der IS24-API nicht anhand der Anzahl der Zeichen berechnet zu werden, sondern anhand der Anzahl der verwendeten Bytes.
Sendet man z.B. im Feld "descriptionNote" 3999x das Zeichen "a", funktioniert alles wie erwartet. Tauscht man jedoch ein "a" durch ein "ä" aus, so schlägt die Validation mit dem Fehler "LENGTH_EXCEEDED" fehl. Umso mehr Zeichen man tauscht, desto kürzer muss der Text sein, um noch korrekt validiert zu werden.
Meine Vermutung ist, dass das "ä" welches in UTF-8 zwei Bytes belegt (anstatt nur eins, wie die üblichen ASCII-Zeichen) entsprechend zweimal gezählt wird. Das ist darauf gestützt, dass man exakt 1999x "ä" senden kann, sodass die Validation noch durchläuft, aber bei 2000x "ä" sie fehlschlägt. Denn 1999x2 < 3999, aber 2000x2 > 3999.
Gleiches passiert mit dem Zeichen "ࠀ", was in UTF-8 drei Bytes belegt. Da ist dann ab 1333 Zeichen schon Schluss (1333x3 = 3999).
Hier ein beispielhafter JSON Payload, der zu dem Fehler führt (die "ä"s sind hier zum Test extra nicht als \u00e4 kodiert — das Problem tritt aber bei beiden Varianten auf):
{"realestates.apartmentRent":{"externalId":"53Eb7WjX","title":"Eine Testimmobilie","address":{"street":"Lessingstraße","houseNumber":"1","postcode":"26382","city":"Wilhelmshaven"},"descriptionNote":"ääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääääää","showAddress":false,"baseRent":999,"livingSpace":999,"numberOfRooms":1,"courtage":{"hasCourtage":"NO"}}}
Aufgefallen ist das, da ein Kunde einen Text online stellen wollte, der ca. 3800 Zeichen lang war, jedoch auch einige Umlaute und andere Zeichen mit mehr als einem Byte beinhaltete. Folglich schlug auch hier die Validation fehl. Man kann dem Kunde in diesem Fall auch nur schwer einen hilfreichen Fehler anzeigen, da die "erlaubte" Textlänge ja durch die verwendeten Zeichen variiert.
Könnt ihr das Problem reproduzieren? Oder seht an anderer Stelle einen Fehler?
VG Richard