首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP iconv()将"ae“翻译成”ae“,但它应该是"a”

PHP iconv()将"ae“翻译成”ae“,但它应该是"a”
EN

Stack Overflow用户
提问于 2019-08-27 16:43:57
回答 1查看 351关注 0票数 1

因此,很长一段时间以来,我一直使用iconv()来生成URL安全(以及其他上下文中的)版本的瑞典单词,所以单词Stadsnät变成了Stadsnat,但是我刚刚移动到一个新的服务器上,注意到它被翻译成了Stadsnaet,打破了很多链接,我如何才能让偶像v()回到"dumber“ä -> a,而不是可能更正确的ä -> ae

它似乎不是PHP的函数,在我的开发服务器上它被正确地转换了,但在我的生产服务器上没有转换,而且两者都使用相同的setlocale(),但是我想系统中的locale文件可能有所不同。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-27 16:56:48

我想您没有正确地指定setLocale。

通过这个小例子,您可以看到不同之处:

代码语言:javascript
运行
复制
<?php
$str = 'Stadsnät';

setlocale(LC_ALL, 'en_GB');
$translit = iconv('UTF-8', 'ASCII//TRANSLIT', $str);
echo $translit . PHP_EOL;
// echos Stadsnat


setlocale(LC_ALL, 'de_CH');
$translit = iconv('UTF-8', 'ASCII//TRANSLIT', $str);

echo $translit . PHP_EOL;
// echos Stadsnaet

在这两个服务器上尝试这个小脚本以确保。

编辑:

基于评论中的对话:setLocale(LC_ALL, 'en_US.UTF8')解决了问题。

作为一种替代办法,下列守则也应这样做:

代码语言:javascript
运行
复制
transliterator_transliterate('Any-Latin; Latin-ASCII; [\u0080-\uffff] remove', 'Stadsnät')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57679091

复制
相关文章

相似问题

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