我正在比较字符串并且必须替换JS中的变音符号,但似乎JS无法识别字符串中的变音符号.文本来自数据库,在浏览器中,变音符号显示正常.
function replaceUmlauts(string)
{
value = string.toLowerCase();
value = value.replace(/ä/g, 'ae');
value = value.replace(/ö/g, 'oe');
value = value.replace(/ü/g, 'ue');
return value;
}
Run Code Online (Sandbox Code Playgroud)
作为我试过的搜索模式:
ä"," ö"," ü"(完全绝望;-))可以肯定的是,我尝试使用indexOf替换函数不是问题:
console.log(value.indexOf('ä'));
Run Code Online (Sandbox Code Playgroud)
但所有模式的输出是: -1
所以我猜这是编码的某种问题,但正如我在页面上所说的,变音符号看起来很好.
有任何想法吗?这看起来很简单......
编辑:即使我找到了答案,问题也没有真正解决"在根"(编码).这是我的页面编码:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
Run Code Online (Sandbox Code Playgroud)
该数据库具有:utf8_general_ci
对我来说似乎完全没问题.
到目前为止,我将总结我们发现的内容:
在事件处理程序内部,无法在IE8中读取属性src(FF工作正常),既不使用jQuery也不使用通常的javascript
获取数据的唯一方法是将其放在处理程序之外,将其写入数组并从处理程序内部读取
但是仍然没有可能写入src(jQuery和javascript都没有工作 - 仅适用于IE 8)
我已经通过将img elemts自己写入文档来实现它,但这个问题背后的原因并没有解决
我们的代码片段使用了两次.
旧代码
<script type="text/javascript">
jQuery(document).ready(function() {
//...
//view entry
jQuery('.blogentry').live('click',function(){
// Get contents
blogtext = jQuery(this).children('.blogtext').html();
blogauthor = jQuery(this).children('.onlyblogauthor').html();
blogtitle = jQuery(this).children('.blogtitle').html();
profileimage = jQuery(this).children('.profileimage').html();
imgleft = jQuery(this).children('.Image_left').attr('src');
imgcenter = jQuery(this).children('.Image_center').attr('src');
imgright = jQuery(this).children('.Image_right').attr('src');
// Write contents
jQuery('#bild_left').attr('src', imgleft);
jQuery('#bild_center').attr('src', imgcenter);
jQuery('#bild_right').attr('src', imgright);
jQuery('.person').attr('src', profileimage);
jQuery('#g_fb_name').html(blogauthor);
jQuery('#g_titel').html(blogtitle);
jQuery('#g_text').html(blogtext);
//...
});
//...
// Change entry
jQuery('.blogentry').each(function(){
entryindex = jQuery(this).attr('rel');
if (entry == entryindex)
{
// The following works fine (so 'children' works …Run Code Online (Sandbox Code Playgroud) 我使用POST通过AJAX将数据提交到php文件.它只需提交字符串就可以正常工作,但现在我想用JSON提交我的JS对象并在PHP端解码它.
在控制台中,我可以看到,我的数据已正确提交,但在PHP端,json_decode返回NULL.
我尝试过以下方法:
this.getAbsence = function()
{
alert(JSON.stringify(this));
jQuery.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ajax/selectSingle.php?m=getAbsence",
data: JSON.stringify(this),
success : function(data){
alert(data);
}
});
}
Run Code Online (Sandbox Code Playgroud)
PHP:
echo $_POST['data'];
echo json_decode($_POST['data']);
echo var_dump(json_decode($_POST['data']));
Run Code Online (Sandbox Code Playgroud)
和:
this.getAbsence = function()
{
alert(JSON.stringify(this));
jQuery.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "ajax/selectSingle.php?m=getAbsence",
data: {'Absence' : JSON.stringify(this)},
success : function(data){
alert(data);
}
});
}
Run Code Online (Sandbox Code Playgroud)
PHP:
echo $_POST['Absence'];
echo json_decode($_POST['Absence']);
echo var_dump(json_decode($_POST['Absence']));
Run Code Online (Sandbox Code Playgroud)
警报只是检查一切都没问题......
而通常的字符串是正确回应的:-)
我已经下载了Eclipse进行php开发.执行后它要求我安装java运行时环境,但是为什么我需要它,如果我想开发php?因此通常情况下,php的eclipse发行需要jre吗?