首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回奇怪的结果

返回奇怪的结果
EN

Stack Overflow用户
提问于 2012-08-11 13:17:19
回答 2查看 647关注 0票数 2

我正在研究一种解决这个问题的方法,在一个自动脚本中使用特殊字符来创建PHP帐户。由于特殊字符在电子邮件地址和其他地方是不需要的,所以我试图去掉它们,但是在将它们输入脚本之前我不能删除它们,因为用户名必须正确地显示给其他用户。

例如:J rgen G tz应该得到电子邮件地址jorgen.gotz@domain.com,但是在用户数据库中,他的名字应该仍然是J rgen,他的姓G tz。我希望我不要不清楚我想要实现什么。

我一直在尝试iconv(),但我遇到了一些问题。请参阅下面的代码。

$utf8_sentence =‘Wei,Goldmann,G bel,Weiss,G the,Goethe und G tz’; (LC_ALL,'en_GB'); echo $trans_sentence = iconv('UTF-8','ASCII//TRANSLIT',$utf8_sentence);

上面的代码应该返回

Weiss,Goldmann,Gobel,Weiss,Gothe,Goethe und Gotz

但它却给了我

Weiss,Goldmann,G"obel,Weiss,G"othe,Goethe und G"otz

我不明白报价是怎么回事。

Chrome和IE都给了我相同的结果,页面使用的是charset="utf-8“。

在使用iconv()之前,我尝试使用strtr()和一个“不想要的”字符数组,但我不喜欢每次需要来回转换字符串时必须设置一个特殊字符数组的解决方案。

有人能提供解释或解决办法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-08-11 14:43:58

尝试将其添加到您的系统(Ubuntu中的终端):

代码语言:javascript
复制
sudo locale-gen de_DE.UTF-8

然后更改您的php脚本的区域设置:

代码语言:javascript
复制
setlocale(LC_ALL, 'de_DE.UTF-8');

编辑(Windows安装程序)

在Windows Server中,您必须安装德语包,并将上面更改为:

代码语言:javascript
复制
setlocale(LC_ALL, 'germany');
票数 0
EN

Stack Overflow用户

发布于 2012-11-05 09:08:02

TRANSLIT试图找到与请求的字符类似的字符。由于字母不是在ascii中,它正在将它改为一对umlat和基本字母。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11915040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档