Text formatieren

Dankeschön nochmal. Ich habe jetzt für die Tabellen latin1-general_ci gewählt.

Ich weiß nicht genau woran es liegt, aber bei mir werden Umlaute immernoch zu üü.
 
zeige mir mal das AJAX Script und das Script, welches de AJAX-Request durchführt.

Die Köpfe reichen mir.
 
Das ist meine index.php am Anfang:

PHP:
<?
@session_start();
require_once ( 'config.php' );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="robots" content="all" /> 
<meta name="MSSmartTagsPreventParsing" content="true" /> 
<meta http-equiv="expires" content="0">
<title>Startseite</title>
<link rel="shortcut icon" href="favicon.ico" /> 
<!--Stylesheets-->
<link rel="stylesheet" type="text/css" href="layout.php?uid=<? echo $_SESSION['id']; ?>" />
<link rel="stylesheet" type="text/css" href="js/fancybox/fancybox/jquery.fancybox-1.3.1.css" media="screen" /> 
<!--JQuery-->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script>
<!--JavaScript-->    
<script type="text/javascript" src="js/fancybox/fancybox/jquery.fancybox-1.3.1.js"></script> 
<script type="text/javascript" src="js/jquery.simpletip-1.3.1.min.js"></script>
<script type="text/javascript" src="js/jquery.autogrow.js"></script>
<? include_once "js/jscript.php"; ?>

... und so weiter

Hier die jscript.php, wo das mit dem AJAX Link definiert ist:

PHP:
$(function() {
$(".submit").click(function() {
var boxval = $(".textbox").val();							
var id = $(this).attr("id");
var dataString = 'add_comment=' + boxval + '<? echo "&me=".$_SESSION['name']."&uid=".$_SESSION['id']."&area=".$_GET['s']."&cid=".$_GET['id'].""; ?>';
$("#comments").html("<img src='images/icon/loading.gif'>");

$.ajax({type:"POST", url:"js/ajax.php", data:dataString, cache: false,
   success: function(){ 
  window.location.reload();
   }
 });
return false;
});

Hier die ajax.php und der Auszug, wo man die Selbstbeschreibung ändert:

PHP:
header ("Content-Type: text/html; charset=ISO-8859-1");
require_once ( '../db.php' );
require_once ( '../functions.php' );
if ($_POST['edit_about'])
{
mysql_query("UPDATE `users` SET `about`='". sInput ( $_POST['edit_about'] ) ."' WHERE `id`='".$_POST['uid']."'");
update_log($_POST['uid'],"about",$_POST['q']);
}
 
in der Index.php vor der ersten Ausgabe folgendes einschieben:
Code:
header ("Content-Type: text/html; charset=ISO-8859-1");

Idealerweise sollten die mit AJAX versendeten Vars noch escaped werden (Javascript escape)
 
Macht das dann das

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

im head-Tag sinnlos?

JS-Escape? Aber bei mir escape ich ja in PHP in der ajax.php. Reicht das nicht?
 
ne sinnlos macht es das nicht, aber dein META Tag juckt den Server nicht. Header hingegen sehr wohl.
 
Ich habe es jetzt direkt am Anfang geschrieben, vor der @session_start..

PHP:
<?
header ("Content-Type: text/html; charset=ISO-8859-1");
@session_start();
require_once ( 'config.php' );

Und es klappt immer noch nicht irgendwie.

Und was meintest du jetzt mit JS-Escape, wenn in PHP schon escaped wird?
 
header vor session_start ist falsch, die Session wird dann nicht starten. Warum unterdrückst du eigentlich die Fehlermeldung von session_start mittels @?
 
Eine Zeile nach session_start klappt es auch nicht.

Äh, das mit dem @ hatte ich ewig schon drin und hatte es früher mal aus irgendeinem Grund reingeschrieben.
 
Die Daten kommen UTF-8 kodiert an. Scheinbar setzt dein AJAX-Client den Header so.

2 Möglichkeiten:
a) das Charset im AJAX-Client ändern
b) den ankommenden UTF-8 String nach ISO umwandeln: utf8_decode ($str);

Welche Bilbliothek verwendest du für AJAX?
 
Zurück