修改 Chrome 自定义搜索编码
自定义搜索的配置存储文件
"%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data"
keywords 表结构(Chrome v60 / 2017.09.04)
CREATE TABLE "keywords"
(
id INTEGER PRIMARY KEY,
short_name VARCHAR NOT NULL, -- 名称
keyword VARCHAR NOT NULL, -- 关键字
favicon_url VARCHAR NOT NULL,
url VARCHAR NOT NULL, -- 链接
safe_for_autoreplace INTEGER,
originating_url VARCHAR,
date_created INTEGER DEFAULT 0,
usage_count INTEGER DEFAULT 0,
input_encodings VARCHAR, -- 编码类型
suggest_url VARCHAR,
prepopulate_id INTEGER DEFAULT 0,
created_by_policy INTEGER DEFAULT 0,
instant_url VARCHAR,
last_modified INTEGER DEFAULT 0, -- 最后一次修改时间
sync_guid VARCHAR,
alternate_urls VARCHAR,
search_terms_replacement_key VARCHAR,
image_url VARCHAR,
search_url_post_params VARCHAR,
suggest_url_post_params VARCHAR,
instant_url_post_params VARCHAR,
image_url_post_params VARCHAR,
new_tab_url VARCHAR,
last_visited INTEGER DEFAULT 0
);
常用查询字段
select
id,
short_name,
keyword,
input_encodings,
last_modified
from keywords;
查看百科(bk)的自定义搜索配置
select
id,
short_name,
keyword,
input_encodings,
last_modified
from keywords
where keyword = 'bk';
更新百科(bk)编码
更新后 last_modified 增加,为了 chrome 能接收更改,同步服务端
update keywords
set input_encodings = 'UTF-8', last_modified = last_modified + 1
where keyword='bk';
命令行编码
cmd 在 gbk
chcp 936
编码下,"百度贴吧"会展示为"鐧惧害璐村惂"
- 设置命令行展示编码为 utf-8
chcp 65001
以上 2017.9 更新
前言
这个文档从整理到今日发布跨度有一年了,至少在最后一次更新时还是有效的。之所以有了最后一次更新项,是因为chrome的搜索设置经历了从无法同步到同步的转变,同步的时间就是那个字段last_modified,类似于一个版本控制的标识。
--update 2013.03.26
我将百度词典的搜索别名定为:di,但发现编码变成utf8了,但chrome不支持,我就通过如下方法手动修改:
update keywords set input_encodings = 'utf8' , last_modified = last_modified +1 where keyword='di';
---老资料update2010.5.4---
集成gb2312
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "update keywords set input_encodings = 'gb2312' where keyword='tb';
update keywords_backup set input_encodings = 'gb2312' where keyword='tb';
select * from keywords where keyword='tb';
select * from keywords_backup where keyword='tb'; "
背景资料
操作前的环境
-
设置了名为“百度贴吧”的搜索,关键字为“tb”,链接为http://tieba.baidu.com/f?kw=%s
-
搜索的内容存储在%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data 推断文件中的keywords表里,keywords_backup 为备份表。
对应字段 | 注释 |
---|---|
short_name | 名称 |
keyword | 关键字 |
url | 链接 |
input_encodings | 编码类型 |
last_modified | 最后一次修改时间 |
常用操作语句
- 修改keywords和keywords_backup中关键字为“tb”的记录的编码为GBK,并查看修改结果:
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "update keywords set input_encodings = 'gbk' where keyword='tb'; update keywords_backup set input_encodings = 'gbk' where keyword='tb'; select id,short_name,keyword,input_encodings,last_modified from keywords where keyword='tb'; select id,short_name,keyword,input_encodings,last_modified from keywords_backup where keyword='tb'; "
- 修改编码,并更新最后修改的时间
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "update keywords set input_encodings = 'GB2312' , last_modified = last_modified +1 where keyword='tb'; update keywords_backup set input_encodings = 'GB2312' , last_modified = last_modified +1 where keyword='tb'; select id,short_name,keyword,input_encodings,last_modified from keywords where keyword='tb'; select id,short_name,keyword,input_encodings,last_modified from keywords_backup where keyword='tb'; "
- 查看当前关键字为“tb”的记录的状态:
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "select id,short_name,keyword,input_encodings,last_modified from keywords where keyword='tb'; select id,short_name,keyword,input_encodings,last_modified from keywords_backup where keyword='tb'; "
- 导出数据库描述语句
echo ".output sql.txt" && echo ".schema > sql.txt" | sqlite "web data"
测试流程
- 关闭Chrome,查看当前状态:
40|百度贴吧|tb||http://tieba.baidu.com/f?kw={searchTerms}|0|0||1330616134|0|||0|0|0|0||1330616134|7DA70CB3-119B-482B-8A87-1799E90FACBC
40|百度贴吧|tb||http://tieba.baidu.com/f?kw={searchTerms}|0||1330616134|0||0||0|0|0|0||1330616134|7DA70CB3-119B-482B-8A87-1799E90FACBC
- 关闭同步,通过chrome修改short_name(百度贴吧->百度贴吧1),关闭Chrome,查看状态:
40|百度贴吧1|tb||http://tieba.baidu.com/f?kw={searchTerms}|0|0||1330616134|0|||0|0|0|0||1330776225|7DA70CB3-119B-482B-8A87-1799E90FACBC
40|百度贴吧1|tb||http://tieba.baidu.com/f?kw={searchTerms}|0||1330616134|0||0||0|0|0|0||1330776225|7DA70CB3-119B-482B-8A87-1799E90FACBC
注: 两者状态中short_name与last_modified字段有变化。
- 开启同步,多次测试tb,一切正常。重启chrome,多次测试,未见异常。
注: 修改后的状态被认可,同步成功。
- 关闭Chrome,通过手工修改short_name(百度贴吧1->百度贴吧),查看状态:
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "update keywords set short_name = '百度贴吧' where keyword='tb'; update keywords_backup set short_name = '百度贴吧' where keyword='tb'; select * from keywords where keyword='tb'; select * from keywords_backup where keyword='tb'; "
40|百度贴吧|tb||http://tieba.baidu.com/f?kw={searchTerms}|0|0||1330616134|7|gbk||0|0|0|0||1330776225|7DA70CB3-119B-482B-8A87-1799E90FACBC
40|百度贴吧|tb||http://tieba.baidu.com/f?kw={searchTerms}|0||1330616134|7|gbk|0||0|0|0|0||1330776225|7DA70CB3-119B-482B-8A87-1799E90FACBC
- 启动Chrome,稍等片刻(等待同步执行),地址栏输入tb+空格测试搜索名称显示。
注: 显示乱码
- 修改4的short_name,再次执行:
sqlite "%USERPROFILE%\AppData\Local\Google\Chrome\User Data\Default\Web Data" "update keywords set short_name = '鐧惧害璐村惂' where keyword='tb'; update keywords_backup set short_name = '鐧惧害璐村惂' where keyword='tb'; select * from keywords where keyword='tb'; select * from keywords_backup where keyword='tb'; "
注: “鐧惧害璐村惂” 为 手工修改前从命令行复制下的“百度贴吧”的另一种编码形态。
- 重复5操作
注: 未见异常。