You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS 10+MediaWiki短URL编码异常问题求助

问题描述

在本地网络的Windows Server 2016(系统语言为韩语)上运行MediaWiki,按官方手册配置短URL后出现以下编码异常问题:

  • 问题A:页面名称대문¹(韩语意为“主页”)通过短URL访问时变为´ë¹®,无法正常访问;
  • 问题B:指向媛곴컖的短URL点击后会显示각각²(韩语意为“各自”)的内容,其中媛곴컖是각각的乱码。

完整URL(如http://192.168.0.123/w/index.php?title=%EB%8C%80%EB%AC%B8)可正常使用,仅VisualEditor存在小问题³:会将分类链接替换为完整URL,如Category:Foo变为Category:index.php?title=Foo。

编码异常排查过程

(A)
EB 8C 80 EB AC B8
↓ UTF-8解码
대문
↓ EUC-KR编码
B4 EB B9 AE
↓ Latin-1解码
´ë¹®

(B)
E5 AA 9B EA B3 B4 EC BB 96
↓ UTF-8解码
媛곴컖
↓ EUC-KR编码
EA B0 81 EA B0 81
↓ UTF-8解码
각각

推测URL编解码过程中被错误地用EUC-KR编码处理,但在IIS和MediaWiki中未找到相关设置。

解决方案

1. 强制IIS使用UTF-8处理URL

  • 打开IIS管理器,定位到MediaWiki对应站点,进入请求筛选功能;
  • 点击右侧功能设置,勾选允许双重转义,确保URL中的UTF-8编码字符能被正确解析;
  • 进入站点的**.NET全球化设置,将响应编码**、文件编码以及请求编码的动/静态编码均设置为UTF-8;
  • 若使用URL重写模块(短URL依赖该模块),在重写规则的条件中添加{URL}的匹配规则,确保处理过程中保留UTF-8编码,避免自动转码为EUC-KR。

2. 修正MediaWiki编码配置

  • 打开MediaWiki根目录下的LocalSettings.php,确认并添加以下配置:
    $wgScriptPath = "/w";
    $wgArticlePath = "/$1";
    $wgUsePathInfo = true;
    // 强制全局编码为UTF-8
    $wgOutputEncoding = 'UTF-8';
    $wgInputEncoding = 'UTF-8';
    $wgDBencoding = 'utf8mb4'; // 数据库需支持utf8mb4,旧版utf8可逐步迁移
    
  • 检查$wgUrlProtocols配置,确保无限制UTF-8字符的处理逻辑;
  • 清理MediaWiki缓存:删除cache目录下所有文件,或在后台执行刷新缓存操作。

3. 调整服务器系统区域设置

  • 打开Windows Server的区域和语言设置,进入管理标签页;
  • 点击更改系统区域设置,勾选Beta版:使用Unicode UTF-8提供全球语言支持,重启服务器生效;
  • 确保当前用户的区域设置为韩语(韩国)且编码为UTF-8。

4. 修复VisualEditor的链接问题

  • 在LocalSettings.php中添加以下配置,强制VisualEditor使用短URL格式:
    $wgVisualEditorUseFullURLs = false;
    $wgVisualEditorEnableDiffPage = true;
    
  • 刷新VisualEditor资源缓存,或重新安装该扩展。

内容的提问来源于stack exchange,提问作者Henry Kwon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:12:44