首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maxmind城市编码问题

Maxmind城市编码问题
EN

Stack Overflow用户
提问于 2015-09-02 14:59:40
回答 3查看 1.4K关注 0票数 3

当使用Nginx配置Mind (使用类似于proxy_set_header GEOIP_CITY $geoip_city;的东西)时,当城市名称中有重音时(比如Montréal),我会遇到编码问题。

我到处搜索,找不到一个nginx开关来强制utf-8编码。我遗漏了什么?

我试着站在红宝石一边city.force_encoding('iso-8859-1').encode('utf-8'),但没有骰子。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-09-02 18:15:44

虽然它没有文档化,但看上去表示您可以强制Nginx模块使用UTF-8。要使用此方法,我相信您以下列方式加载数据库:

代码语言:javascript
复制
http {
    geoip_city            GeoLiteCity.dat  utf8;
    ...
票数 8
EN

Stack Overflow用户

发布于 2016-08-31 12:13:19

您可以使用utf8_encode()来获得您想要达到的结果。

例如(在php中):

代码语言:javascript
复制
// $city_name = $record->city; 
$city_name = utf8_encode($record->city);
票数 2
EN

Stack Overflow用户

发布于 2017-08-30 09:25:56

尽管MaxMind提供了一个使用UTF-8作为默认字符集的GeoIPCity API,但GeoListeCity.dat似乎使用了ANSI编码。因为有些地方没有英文翻译,所以可能会造成编码混乱.

费尔南多解决方案正在工作,但万一较新版本的geoLiteCity.dat使用非ISO-8859-1兼容字符集,您还可以确保最终字符串是通过使用mb_convert_encoding编码的UTF-8:

代码语言:javascript
复制
$location->city = mb_convert_encoding($location->city, 'UTF-8');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32356640

复制
相关文章

相似问题

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