核对车票中转站
在 12306 买联程票,第一程到「锦州」站,第二程从「锦州南」站出发,中间只有 40 分钟。担心两个站不是同一个地方,拿着票根在地铁上查。输入「锦州」和「锦州南」的三字码,确认一个是 JZD 一个是 JNF,属于不同车站,果断改签第二程,避免跑错站赶不上车。
查票时对着手机屏幕上的三个字母发愣——「HZH」是哪个站?打开这个工具,输入或粘贴站名,它立刻反查对应的铁路三字码。覆盖全国已开通客运的所有车站,结果直接显示站名、拼音和三字码。查询在浏览器本地完成,站名数据随页面加载,不上传服务器,断网也能查。
在 12306 买联程票,第一程到「锦州」站,第二程从「锦州南」站出发,中间只有 40 分钟。担心两个站不是同一个地方,拿着票根在地铁上查。输入「锦州」和「锦州南」的三字码,确认一个是 JZD 一个是 JNF,属于不同车站,果断改签第二程,避免跑错站赶不上车。
帮老家亲戚代买从「渭南」到「西安」的票,亲戚口音重,说「渭南」听起来像「魏南」。手动输入站名怕选错,先查「渭南」的三字码是 WNY,再查「西安」是 XAY。在购票软件里直接按代码搜,确保出发站和到达站完全匹配,避免买到「魏善庄」之类的无关车站。
从上海去安徽阜阳,高铁经过「阜阳西」和「阜阳」两个站。同事说「阜阳西」是新站,离市区远。用本工具查三字码:阜阳西是 FYF,阜阳是 FYH,确认是两个不同的客运站。对比两者到目的地的公交时间后,选择在「阜阳」站下车,省了半小时换乘。
买去「黄山」的票,发现 12306 里同时有「黄山」和「黄山北」。搜三字码:黄山是 HKH,黄山北是 HGH。一问才知道,「黄山」是老站,离景区近但车次少;「黄山北」是高铁站,车次多但需再坐大巴。根据到达时间和出行方式,选了黄山北站,用三字码精准锁定购票。
| 维度 | 本工具 | 铁路 12306 官网 | 纸质时刻表 / 人工查询 |
|---|---|---|---|
| 查询速度 | 输入三字码即出结果,毫秒级 | 需登录 + 多级菜单,秒级 | 翻书或问人,分钟级 |
| 离线可用 | 纯浏览器运行,断网也能查 | 必须联网 | 完全离线 |
| 数据范围 | 覆盖全国所有车站三字码 | 仅查车次时附带显示,不独立查询 | 依赖版本,老旧车站常缺失 |
| 更新及时性 | 随铁路调整同步更新 | 实时同步铁路数据 | 纸质版更新周期长(半年/一年) |
| 使用门槛 | 打开即用,无需注册 | 需注册账号并登录 | 需熟悉车站分布或携带手册 |
| 输入 | 输出 | 说明 |
|---|---|---|
| 北京 | BJP | 常规:直辖市,用户最常查询的起点站之一,验证基本地名→三字码映射 |
| 上海 | SHH | 常规:另一大枢纽,与北京不同编码规则(上海为SHH而非SHA),展示非首字母缩写逻辑 |
| 广州南 | IZQ | 边界:含方位后缀(南/东/西/北)的车站,编码不包含方位字,需确认正确映射 |
| 西安 | XAY | 常规:省会城市,编码为XAY而非XAN,展示非拼音首字母组合 |
| 拉萨 | LSO | 边界:偏远地区车站,编码可能不直观(LSO而非LSA),验证数据完整性 |
| 株洲 | ZZQ | 易错:与郑州(ZZF)编码相似但不同,用户易混淆,需注意区分 |
| 天津 | TJP | 常规:直辖市,与北京(BJP)编码模式一致(城市拼音首字母+P),验证规律性 |
| 乌鲁木齐 | WAR | 边界:多字地名,编码为WAR而非WLMQ,展示非全拼缩写规则 |
1.把站名当三字码输入
输入“北京”或“beijing”BJP三字码是车站的固定字母代号,不是拼音或中文名。输入中文或拼音不会匹配到任何结果。
2.混淆车站与城市的三字码
查“上海火车站”时输入“SHA”SHHSHA 是上海虹桥站(Shanghai Hongqiao)的代码,上海站(Shanghai)的代码是 SHH。城市名不等于站名,不同车站代码不同。
3.大小写混用或全小写
输入“bjp”或“Bjp”BJP三字码标准格式为全大写字母。多数查询工具不区分大小写,但部分系统或导出场景会因大小写不一致导致匹配失败。
4.输入已停用或更名的车站代码
查“中华门站”时输入“ZHM”先确认车站当前运营状态,ZHM 已停用部分车站因线路调整已停运或更名,旧代码不再有效。查询前应确认车站是否仍在运营。
5.把拼音首字母当三字码
查“广州南站”时输入“GZN”IZQ三字码由国铁统一分配,并非简单取拼音首字母。广州南站的代码是 IZQ,与拼音无关。
6.忽略站名中的方位词差异
查“杭州东站”时输入“HZH”HGHHZH 是杭州站(城站)的代码,杭州东站的代码是 HGH。方位词(东、西、南、北)对应不同车站,代码完全不同。
7.误用英文站名缩写
查“南京南站”时输入“NJS”NKJNJS 是南京站(Nanjing)的代码,南京南站(Nanjing South)的代码是 NKJ。英文站名缩写不直接对应三字码。
三字码 = 车站拼音首字母组合(无公式,为固定映射表)
车站名中国铁路客运站中文名称三字码对应车站的3位大写字母代码北京站 → 拼音 BeiJing Zhan → 取首字母 BJZ,实际映射为 BJP(北京站三字码)。输入“北京站”查询,返回三字码 BJP。
6 种主流语言实现,复制即用:
import requests
# 查询火车站三字码
station_name = "北京"
url = f"https://www.quanbao5.com/shenghuo/huochezhan-daima?q={station_name}"
response = requests.get(url)
if response.status_code == 200:
# 实际解析需根据页面 HTML 结构提取,此处示意调用方式
print(f"查询 {station_name} 的三字码结果已返回")
else:
print("查询失败")// 浏览器端示例:使用 fetch 查询火车站代码
const stationName = '上海';
const url = `https://www.quanbao5.com/shenghuo/huochezhan-daima?q=${encodeURIComponent(stationName)}`;
fetch(url)
.then(response => response.text())
.then(html => {
// 解析 HTML 提取三字码(需根据页面结构实现)
console.log(`已获取 ${stationName} 的查询结果页面`);
})
.catch(err => console.error('请求失败:', err));package main
import (
"fmt"
"io/ioutil"
"net/http"
"net/url"
)
func main() {
station := "广州"
baseURL := "https://www.quanbao5.com/shenghuo/huochezhan-daima"
params := url.Values{}
params.Add("q", station)
fullURL := baseURL + "?" + params.Encode()
resp, err := http.Get(fullURL)
if err != nil {
fmt.Println("请求失败:", err)
return
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Printf("查询 %s 返回页面长度: %d 字节\n", station, len(body))
}#!/bin/bash
# 使用 curl 查询火车站三字码
STATION="深圳"
curl -s "https://www.quanbao5.com/shenghuo/huochezhan-daima?q=${STATION}" | \
grep -oP '(?<=<td>)[A-Z]{3}(?=</td>)' | head -1 || \
echo "未找到三字码"import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
public class StationCodeQuery {
public static void main(String[] args) throws Exception {
String station = "杭州";
String url = "https://www.quanbao5.com/shenghuo/huochezhan-daima?q=" +
URLEncoder.encode(station, StandardCharsets.UTF_8);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("查询 " + station + " 返回状态码: " + response.statusCode());
}
}<?php
$station = '成都';
$url = 'https://www.quanbao5.com/shenghuo/huochezhan-daima?q=' . urlencode($station);
$html = @file_get_contents($url);
if ($html === false) {
echo "请求失败\n";
exit;
}
// 简单提取三字码(需根据实际页面结构调整正则)
preg_match('/<td>([A-Z]{3})<\/td>/', $html, $matches);
$code = $matches[1] ?? '未找到';
echo "{$station} 的三字码: {$code}\n";不是一回事。12306的车站编号通常是6位数字(如北京站10001),而三字码是3位字母(如BJP)。三字码是铁路系统内部用于电报、票务清算等场景的简码,12306购票时不会直接显示。本工具只查三字码,不查6位数字编号。如果买票需要确认站名,建议对照车站中文名核对。
不是数据不全。中国铁路三字码主要覆盖办理客运业务的火车站,以及部分编组站、货运站。一些乘降所、临时停靠点、已撤销的站可能没有分配三字码,或者码已停用但未公开。如果搜不到,可以先确认该站是否在12306能查到车次;12306有但这里没有,可以反馈补充;12306本身没有,那基本就没有三字码。
建议不带‘站’字直接输站名主体,比如输‘北京南’而不是‘北京南站’。因为数据库里存的是标准站名,多数不带‘站’。如果输入带‘站’的完整名称,部分站可能会匹配不上(如‘杭州东站’与‘杭州东’)。若第一次没搜到,可以去掉‘站’字再试。模糊匹配功能会在后续版本加入。
每个车站有唯一的三字码,互不重复。北京站是BJP,北京西是BXP,北京南是VNP,北京北是VAP,北京朝阳是IFP。输城市名(如‘北京’)会列出该城市所有带客运业务的车站列表,再点具体站名就能看到对应的三字码。如果只输一个字或模糊字,建议尽量精确到站名全称。
本工具是纯前端实现,所有数据打包在页面里,首次加载后后续查询不需要联网,也不会上传任何输入内容。但页面本身是网页,不能像App那样独立离线运行。如果想离线查,可以在有网时把页面添加到手机桌面(PWA方式),或者截图保存常用站的三字码。没有服务器交互,隐私安全。
不会。三字码是铁路系统内全局唯一的标识符,每个码只对应一个车站(当前运营中的)。历史上曾有过撤销车站后码被回收重新分配给新站的情况,但同一时段内不会重复。如果发现两个不同站名显示同一个三字码,大概率是其中一个站名已变更或合并,建议以12306官方信息为准。
三字码全部由英文字母组成(A-Z),不会出现数字。如果看到类似‘012’这样的组合,那可能是其他编号系统(如电报码中的数字代码或车站编号)。本工具只收录纯字母的三字码。如果输入后返回空结果,可以先检查是否误输了数字或特殊符号。
三字码主要用于铁路内部系统(如调度、清算、电报)以及部分第三方开发者的接口调用。普通乘客在12306或车站窗口买票、退票、改签时,不需要使用三字码,直接报站名即可。如果是在开发票务相关软件或对接铁路接口,三字码是必填字段,本工具可作为查询参考。
隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。