PHP Tinymce土耳其字符问题
我正在使用tinymce编辑器。它工作正常,但当我使用slug时,它工作不正常 例如当我写“TürkçeÜrün”时,我看到的结果是“T,uuml,rk,ccedil,e,uuml,r,uuml,n”,就像这样PHP Tinymce土耳其字符问题,tinymce,character,turkish,Tinymce,Character,Turkish,我正在使用tinymce编辑器。它工作正常,但当我使用slug时,它工作不正常 例如当我写“TürkçeÜrün”时,我看到的结果是“T,uuml,rk,ccedil,e,uuml,r,uuml,n”,就像这样 // Slugify a string function slugify($text) { $text = str_replace('ü','u',$text); $text = str_replace('Ü','U',$
// Slugify a string
function slugify($text)
{
$text = str_replace('ü','u',$text);
$text = str_replace('Ü','U',$text);
$text = str_replace('ğ','g',$text);
$text = str_replace('Ğ','G',$text);
$text = str_replace('ş','s',$text);
$text = str_replace('Ş','S',$text);
$text = str_replace('ç','c',$text);
$text = str_replace('Ç','C',$text);
$text = str_replace('ö','o',$text);
$text = str_replace('Ö','O',$text);
$text = str_replace('ı','i',$text);
$text = str_replace('İ','I',$text);
// Strip html tags
$text=strip_tags($text);
// Replace non letter or digits by -
$text = preg_replace('~[^\pL\d]+~u', '-', $text);
// Transliterate
setlocale(LC_ALL, 'en_US.utf8');
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// Remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
// Trim
$text = trim($text, '-');
// Remove duplicate -
$text = preg_replace('~-+~', ',', $text);
// Lowercase
$text = strtolower($text);
// Check if it is empty
if (empty($text)) { return 'n-a'; }
// Return result
return $text;
}
您尝试过实体编码吗
entity_encoding : "raw",
您尝试过实体编码吗
entity_encoding : "raw",
如果查看输入这些土耳其语字符时创建的HTML,我怀疑您没有得到预期的效果,并且处理它的代码可能没有达到预期效果 这些土耳其语字符不是普通UTF-8字符集(TinyMCE默认值)的一部分,因此它们会被编码。当我将您的内容放入TinyMCE时,它会创建以下HTML:
Türkçe Ürün
请注意,这些土耳其语字符中的每一个都已编码()
您的服务器端代码似乎希望替换“非字母”字符并删除“不需要的”字符。在我看来,您的代码正在破坏编码字符,如与(
&
)和分号(;
)已从内容中删除。如果您查看输入这些土耳其语字符时创建的HTML,我怀疑您没有得到预期的效果,并且处理它的代码可能没有达到预期效果
这些土耳其语字符不是普通UTF-8字符集(TinyMCE默认值)的一部分,因此它们会被编码。当我将您的内容放入TinyMCE时,它会创建以下HTML:
Türkçe Ürün
请注意,这些土耳其语字符中的每一个都已编码()
您的服务器端代码似乎希望替换“非字母”字符并删除“不需要的”字符。在我看来,您的代码正在破坏编码字符,因为已从内容中删除了符号(
&
)和分号(;
)。我已经解决了这个代码的问题
$check_data = array('ü','Ü','ö','Ö','Ç','ç');
$change_data = array('ü','Ü','ö','Ö','Ç','ç');
$new_data = str_replace($check_data,$change_data,$description);
谢谢你的回答。我已经解决了这个代码的问题
$check_data = array('ü','Ü','ö','Ö','Ç','ç');
$change_data = array('ü','Ü','ö','Ö','Ç','ç');
$new_data = str_replace($check_data,$change_data,$description);
使用数字编码。例如,它会将ü编码为̈,并能完美工作
tinymce.init({
.........................,
entity_encoding : 'numeric'
});
使用数字编码。例如,它会将ü编码为̈,并能完美工作
tinymce.init({
.........................,
entity_encoding : 'numeric'
});
实际上,我已经看到了这个代码。我试着在tinymce.min.js中使用它,但我不知道它是否正确。我刚刚在tinymce.min.js的末尾添加了这段代码,在tinymce.init函数中尝试这段代码,就像链接上的示例一样。(Türksünüz sanırım.sinan。499@gmail.commail atar mısınız?)tinymce.init({selector:'textarea',//根据HTML实体编码更改此值:“raw”});使用实体_编码对我来说很有效,实际上我已经看到了这段代码。我试着在tinymce.min.js中使用它,但我不知道它是否正确。我刚刚在tinymce.min.js的末尾添加了这段代码,在tinymce.init函数中尝试这段代码,就像链接上的示例一样。(Türksünüz sanırım.sinan。499@gmail.commail atar mısınız?)tinymce.init({selector:'textarea',//根据HTML实体编码更改此值:“raw”});使用entity_编码对我来说很有效,我是否正确地假设您正在URL路径中创建一个
slug
,如?通过将内容检索为文本而不是HTML,您可以避免很多心痛和潜在的错误,有关更多详细信息,请参阅。我是否正确地假设您在URL路径中创建了一个slug
,如?通过将内容检索为文本而不是HTML,您可以避免很多心痛和潜在的bug,有关更多详细信息,请参阅。