解决 近期B站播放器在Chrome 48+ 与 Flash 20.0 下出现乱码

触发条件

复现此问题需要同时解锁下列4个条件:

  • √ Windows
  • √ Chrome Version 48+
  • √ Chrome DirectWrite 字体渲染(默认开启)
  • √ Flash Version 20.0+

发现过程

大概15年11月下旬就发现这个问题。

哔哩哔哩乱码
哔哩哔哩乱码

如图所示,就算输入英文都会显示成其他字母,。汉字更是乱七八糟
弹幕显示正常,正常发送弹幕出去后也是正确内容

当时是Chrome 49 64bit-Dev,在Flash更新到20.0后发现此问题
手工替换Flash回19.0就正常了,但又总是自动更新回去新版。。。

问群里的小伙伴,好像没人遇到这个问题,没人回应。。
去bilibili论坛反馈,说让换Chrome稳定版(当时大概version才46大概?),换稳定版试了试,可以正常工作。

本以为就此结束,等稳定版更新到49了这问题应该早就解决了。

然而,近来Chrome稳定版到了大概48,再次出现此问题。。

最近又问小伙伴们,遇到此问题的小伙伴多了一些。。
某人说关了DirectWrite渲染就好了,试了下果然没问题了。。。

解决方案

  1. 打开实验性功能控制页面(在地址栏输入chrome://flags/转到)
  2. 找到”停用DirectWrite”选项,点击启用

解决前应该是这样的:
未启用“停用DirectWrite”功能

解决后应该是这样的:
已启用“停用DirectWrite”功能

不知道算不算Bug,已经向Google提交了Feedback
涉及到三方也不知道谁的锅,向谁提交才对。。

UPDATE 1

最新版的Chrome已经更名为“DirectWrite(启用实验性DirectWrite字体渲染系统)”,因此需要将其置为“禁用”状态

近似计算π值

通过James Gregory的展开式,π/4=1-1/3+1/5-1/7…公式, 计算π近似值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>

double pai(double accuracy)
{
if(accuracy<=0 || accuracy>1) return 3;
int symbol = 1; //项正负标志
int n = 1; //分母项
double pi = 0.0;
do
{
pi += symbol * (1.0 / n);
n += 2;
symbol = -symbol;
}while(1.0/n >= accuracy*0.1 );
return pi*4;
}

int main()
{
double accuracy , pi;
scanf("%lf", &accuracy );
printf("accuracy: %f\n", accuracy);
pi = pai(accuracy);
printf("%f\n", pi);
return 0;
}

C++ 判断有效日期

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
inline bool isLeapYear(int year)
{

return (year < 172800 ?
year % 100 != 0?
year % 4 == 0:
year % 400 == 0
:
year % 172800 == 0);
}

inline bool is31Month(int month)
{

return month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12;
}

//正常写法
inline bool isVaildDate(int year, int month, int day)
{
return (year >= 0 &&
month >= 1 && month <= 12 && day >= 1) &&
( is31Month(month)?
day <= 31: month == 2? isLeapYear(year) ? day <= 29 : day <= 28 : day <= 30 ) ;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// 作死写法(别打我233)
inline bool isVaildDate(int year, int month, int day)
{
return year >= 0 &&
month >= 1 && month <= 12
&& day >= 1
&& (
month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12
?
day <= 31
:
month == 2
?
(year < 172800
?
year % 100 != 0
?
year % 4 == 0
:
year % 400 == 0
:
year % 172800 == 0)
?
day <= 29
:
day <= 28
:
day <= 30
) ;
}
1
2
3
4
5
6
7
8
9
10
#include <iostream> 
using namespace std;

int main()
{
int year, month, day;
cin>>year>>month>>day;
cout<< ( isVaildDate(year, month, day) ?1:0 ) ;
return 0;
}

Song - 「月光石」- ルルティア

[player url=”//static.moew.xyz/usr/uploads/music/selenite.mp3” artist=”ルルティア” title=”月光石” ]
[lrc]
[ti:セレナイト]
[ar:ルルティア]
[al:Meme]
[00:00.85]「セレナイト」(Selenite)【月光石】
[00:03.85]4th アルバム「Meme」05/4/13
[00:07.70]作詞:ルルティア
[00:11.13]作曲:ルルティア
[00:13.68]編曲:TAKA SATO
[00:16.92]歌:ルルティア
[00:19.85]
[00:29.13]ああ 揺らめく 燈火 瓦礫の街に【瓦砾尘封街市 昏黄灯火摇曳】
[00:41.82]鳴り響く透明な調べは願いを湛え【透明旋律回响 承载心愿件件】
[00:54.01]今 焼け落ちた空は水の底へと沈んでゆく【燃烧殆尽的天空坠沉水底】
[01:06.71]満ちてゆく月明かり【月光 却仍满盈】
[01:17.65]
[03:59.15][01:17.99]青く燃える夜が君を染める はかないほど【苍茫夜色将你映照 若真若幻】
[04:11.63][01:30.58]細い肩をきつく抱いていても【即使抱紧你瘦弱的双肩】
[04:20.89][01:39.64]君は消えてしまいそうで【你却似乎仍将逝去】
[01:44.83]
[01:57.39]ああ 無数の星粒 宇宙の果てで【无数星粒 去向宇宙尽头】
[02:10.05]見つけたよ 初めての出会いは目眩さえ覚え【眩目邂逅 让我记忆犹新】
[03:31.80][02:22.43]今 降り注ぐ金と銀の光の波にのまれ【此刻 倾注而来的金银之光笼罩你我】
[03:44.36][02:34.99]二人 聖なる河へ【让我们行向 神圣之河】
[03:54.97][02:45.18]
[04:24.88][02:46.39]甘く押し寄せては僕の胸を震わせるよ【让我颤抖的甜蜜涌上心中】
[04:36.91][02:59.00]ずっとこのままでずっと抱いていたい【暗暗祈求永远这般拥抱着你】
[04:45.94][03:08.12]君は消えてしまわないように【为了让你不再消失离我而去】
[03:13.14]
[05:19.60]LRC&Translation by Esperando
[05:21.10]
[/lrc]
[/mp3]
[/player]

[player]
[lrc]
[ti:セレナイト]
[ar:ルルティア]
[al:Meme]
[00:00.85]「セレナイト」(Selenite)【月光石】
[00:03.85]4th アルバム「Meme」05/4/13
[00:07.70]作詞:ルルティア
[00:11.13]作曲:ルルティア
[00:13.68]編曲:TAKA SATO
[00:16.92]歌:ルルティア
[00:19.85]
[00:29.13]a a / yu la me ku / tomoxi bi / ga le ki no maqi ni【瓦砾尘封街市 昏黄灯火摇曳】
[00:41.82]na / li hi bi ku / tou mei na xila be wa / ne ga i o tata e【透明旋律回响 承载心愿件件】
[00:54.01]i ma / ya ke o qi ta sola mi zu no / soko he to xi zu n de yo ku【燃烧殆尽的天空坠沉水底】
[01:06.71]mi qi / te yu cuki a ka li / a na【月光 却仍满盈】
[01:17.65]
[03:59.15][01:17.99]ao ku / mo e lu yolu ga / ki mi o so me lu / ha ka na i ho do【苍茫夜色将你映照 若真若幻】
[04:11.63][01:30.58]hoso i / kata o ki zu ku / da i te i te mo【即使抱紧你瘦弱的双肩】
[04:20.89][01:39.64]kimi wa ki e te / xi ma i so wu de【你却似乎仍将逝去】
[01:44.83]
[01:57.39]a a / mu su wu no / hoxi cu bu / wu qiyuwu no ha te de【无数星粒 去向宇宙尽头】
[02:10.05]mi / cu ke ta yo / haji me te no de a i wa / me mai sa e o bo e【眩目邂逅 让我记忆犹新】
[03:31.80][02:22.43]ima / fu li so so gu kin to gin no / hikali no / nami ni no ma le【此刻 倾注而来的金银之光笼罩你我】
[03:44.36][02:34.99]fa ta / li se i na lu kawa he / a na【让我们行向 神圣之河】
[03:54.97][02:45.18]
[04:24.88][02:46.39]a ma ku / o xi yo se te wa / bo ku no mune o / fu lu wa se lu yo【让我颤抖的甜蜜涌上心中】
[04:36.91][02:59.00]zu to / ko no no ma ma zu to / da i te i te i【暗暗祈求永远这般拥抱着你】
[04:45.94][03:08.12]kimi ga ki e te / xi ma wa na i yo wu ni【为了让你不再消失离我而去】
[03:13.14]
[05:19.60]LRC&Translation by Esperando
[05:21.10]
[/lrc]
[/mp3]
[/player]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[ti:月光石]
[ar:Rurutia]
[al:]
[by:]
[offset:0]
[00:29.33]ああ
[00:31.08]揺らめく
[00:33.52]
[00:34.25]灯火がれきの街に
[00:40.09]
[00:41.69]なりひびく
[00:46.14]透明な调べは
[00:49.46]
[00:50.00]ねがいを湛え
[00:52.30]
[00:54.07]今
[00:55.56]
[00:56.26]やけ落ちた空は水の
[01:00.30]底へと沉んでいく
[01:05.84]
[01:06.66]满ちていく
[01:09.31]月明かり
[01:11.86]
[01:12.93]あな
[01:16.72]
[01:18.19]青く
[01:20.76]燃える夜が
[01:23.92]君を染める
[01:26.32]
[01:27.26]はかないほど
[01:30.04]
[01:30.68]细い肩をきつく
[01:36.59]抱いていても
[01:39.64]君は消えて
[01:42.91]しまいそうで
[01:46.24]
[01:57.78]ああ
[01:59.44]むすうの星粒
[02:05.04]
[02:05.72]宇宙の果てで
[02:08.32]
[02:10.28]みつけたよ
[02:14.50]初めての出会いは
[02:18.26]目眩ちえおぼえ
[02:20.74]
[02:22.41]今降りそそぐ金と银の
[02:28.68]光の波に吞まれ
[02:33.87]
[02:35.04]二人
[02:37.40]せいなる河へ
[02:40.13]
[02:41.39]あな
[02:45.08]
[02:46.60]甘く
[02:49.22]押し寄せては
[02:52.39]ぼくの胸をふるわせるよ
[02:58.34]
[02:59.14]ずっとこのままずっと
[03:04.88]抱いていたい
[03:08.05]君が消えて
[03:11.28]しまわないように
[03:14.11]
[03:32.11]今
[03:33.36]
[03:34.08]降りそそぐ金と银の
[03:38.21]光の波に吞まれ
[03:43.31]
[03:44.58]二人
[03:46.88]せいなる河へ
[03:49.19]
[03:50.87]あな
[03:54.53]
[03:59.22]青く燃える夜が君を染める
[04:07.57]
[04:08.20]はかないほど
[04:10.67]
[04:11.69]细い肩をきつく
[04:17.53]抱いていても
[04:20.74]君は消えて
[04:23.48]
[04:24.58]甘く
[04:27.05]押し寄せては
[04:30.19]ぼくの胸をふるわせるよ
[04:36.11]
[04:36.96]ずっとこのままずっと
[04:42.83]抱いていたい
[04:45.95]君が消えてしまわ查いように"}

「セレナイト」(Selenite)【月光石】
4th アルバム「Meme」05/4/13
——《鸦 KARAS》 ED 完整版
作詞:ルルティア(RURUTIA)
作曲:ルルティア(RURUTIA)
編曲:TAKA SATO
歌:ルルティア(RURUTIA)

ああ 揺らめく灯火 瓦砾の街に
鸣り响く透明な调べは 愿いを湛え

今 焼け落ちた空は水の底へと沈んでいく
満ちていく 月明かり

青く燃える夜が君を染める 儚いほど
细い肩をきつく抱いていても
君は消えてしまいそうで

ああ 无数の星粒 宇宙の果てで
见つけたよ 初めての出会いは目眩さえ覚え

今 降り注ぐ金と银の光の波に呑まれ
二人 圣なる河へ

甘く押し寄せては仆の胸を震わせるよ
ずっとこのままずっと抱いていたい
君が消えてしまわないように

今 降り注ぐ金と银の光の波に呑まれ
二人 圣なる河へ

青く燃える夜が君を染める 儚いほど
细い肩をきつく抱いていても
君は消えてしまいそうで

甘く押し寄せては仆の胸を震わせるよ
ずっとこのままずっと抱いていたい
君が消えてしまわないように


摇曳的灯火 瓦砾的街道

透明旋律载满心愿回荡着

燃烧殆尽的天空缓缓沉入水底

银色月光布满大地

你的身影溶入青色夜空 恍如梦幻

拼命抱紧你瘦削的双肩

依然害怕你会转瞬消失

无数的星辰 宇宙的尽头

初次的相遇甚至令我目眩

笼罩在天空洒下的绚烂光芒中

我们去向神圣之河

幸福的感觉如潮水袭来 不禁颤抖

希望就这样永远抱紧你

不愿让你消失在我眼前


ああ 揺らめく灯火 瓦砾の街に
aa u lameku domo ximi ganajino majini
摇曳的灯火 瓦砾的街道

鸣り响く透明な调べは 愿いを湛え
Na mixiniku toomeina xinagewa nagaiwo tataa
透明旋律载满心愿回荡着

今 焼け落ちた空は水の底へと沈んでいく
ima yagewojita sola wami izimo soguoeduo xizummeyogu
燃烧殆尽的天空缓缓沉入海底

満ちていく 月明かり ああ
miji deyukuzuki agali
银色月光布满大地

青く燃える夜が君を染める 儚いほど
a a aooku moaluyoluga kimiwosomelu hekala ihodo
你的身影容入青色夜空 恍如梦幻

细い肩をきつく抱いていても
hosoi kadao kizugu deideidemo
拼命抱紧你消瘦的双肩

君は消えてしまいそうで
kimiwakieda ximai so ede
依然害怕你会转顺消失

ああ 无数の星粒 宇宙の果てで
aa musuwuno hoxizunu mujunohadede
无数的星辰 宇宙的尽头

见つけたよ 初めての出会いは目眩きえ觉え
mi zugedayo hajimedeno deaiwa memai sai namoe
初次的相遇甚至另我目眩

今 降り注ぐ金と银の光の波に呑まれ
ima hulisosogukimidokii mumo higalino namililoomane
笼罩在天空洒下的绚烂光线中

二人 圣なる河へ ああ
huda liseinalukawaa
我们去向神圣之河

甘く押し寄せては仆の胸を震わせるよ
a a aomoku oxiyosedewa boodunomunewo hunuwasaeyo
幸福的感觉如潮水来袭 不禁颤抖

ずっとこのままずっと抱いていたい
zudo kononomazudo meideidei
期望就列样永远抱紧你

君が消えてしまわないように
kimiakieda ximawanayaku
不愿让你消失在我眼前

今 降り注ぐ金と银の光の波に呑まれ
ima hulisosogukimidokii mumo higalino namililoomane
笼罩在天空洒下的绚烂光线中

二人 圣なる河へ ああ
huda liseinalukawaa
我们去向神圣之河

青く燃える夜が君を染める 儚いほど
a a aboku moaluyoluga kimiwosomelu hekala ihodo
你的身影容入青色夜空 恍如梦幻

细い肩をきつく抱いていても
hosoi kadaokizuku daideidemo
拼命抱紧你消瘦的双肩

君は消えてしまいそうで
kimiwakieda
依然害怕你会转顺消失

甘く押し寄せては仆の胸を震わせるよ
xi aooku oxiyosedewa bokuno mune wo hunuwaseayo
幸福的感觉如潮水来袭 不禁颤抖

ずっとこのままずっと抱いていたい
zudo konomamazudo daideidei
期望就列样永远抱紧你

君が消えてしまわないように
kimigakieda ximawalayani
不愿让你消失在我眼前


a / u la me ku / do mo xi mi / ga na ki no ma ji ni
摇曳的灯火 瓦砾的街道
Na / mi hi ni ku / duo o me i na xi na ge wa / na ga i wo ta ta a
透明旋律载满心愿回荡着
i ma / ya ge wo ji ta so la wa mi i zi mo / so guo e duo xi zu m me yo ku
燃烧殆尽的天空缓缓沉入海底
mi ji / de yu ku zu ki a ga li / a~
银色月光布满大地

a wo ku / mo a lu yo lu ga / ki mi wo so me lu / he ka la i ho do
你的身影容入青色夜空 恍如梦幻
ho so i i / ka da o ki zu gu / de i de i de mo
拼命抱紧你消瘦的双肩
ki mi wa ki e da / xi ma i so o de
依然害怕你会转顺消失

a / mu su wu nuo / ho xi zu nu / mu ju no ha de de
无数的星辰 宇宙的尽头
mi / zu ge da yo / ha ji me de no de a i wa / me ma i sai o mo ei
初次的相遇甚至另我目眩
i ma / hu li so so gu ki mi do ki i mu mo
笼罩在天空洒下的
hi ga li no / na mi li loo ma ne
绚烂光芒中
hu da / li se i na lu ka wa / a~
我们去向神圣之河

a mo ku / wu xi yo se de wa / ma ku no mu ne wo / hu nu wa sa e yo
幸福的感觉如潮水来袭 不禁颤抖
zu do / ko no no ma zu do / me i de i de i
希望就这样永远抱紧你
ki mi a ki e da / xi ma wa na ya ku
不愿让你消失在我眼前

i ma / hu ni so so gu ki mi do ki i mu no
笼罩在天空洒下的
hi ga li no / na mi ni no ma ne
绚烂光芒中
hu do / li sa i na nu ka wa e / a~
我们去向神圣之河

a wo ku / mo a lu yo lu ga / ki mi wo so me lu / ha ka la i ho do
你的身影容入青色夜空 恍如梦幻
ho so i / ka da o ki zu ku / da i de i de mo
拼命抱紧你消瘦的双肩
ki mi wa ki e da
依然害怕你会转顺消失

xi ao o ku / o xi yo se de wa / bo ku no mu ne wo / hu nu wa sea nu yo
幸福的感觉如潮水来袭 不禁颤抖
zu do / ko no ma ma zu do / da i de i de i
希望就这样永远抱紧你
ki mi ga ki e da / xi ma wa la ya ni
不愿让你消失在我眼前

Githug 过关攻略

Notice: The article is not finished.

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    ********************************************************************************
    * Githug *
    ********************************************************************************

    Name: cherry-pick
    Level: 42
    Difficulty: ***

    Your new feature isn't worth the time and you're going to delete it. But it has one commit that fills in `README` file, and you want this commit to be on the ma ster as well.

    $ git branch
    master
    new-feature
    $ git checkout new-feature
    Switched to branch 'new-feature'
    $ git log -p
    commit ea2a47c19b85fc321e2737ddc49db3deeba3a1b5
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:28:35 2012 +0400

    some small fixes

    diff --git a/new-feature.js b/new-feature.js
    index a214bad..14ad8f1 100644
    --- a/new-feature.js
    +++ b/new-feature.js
    @@ -1,3 +1,4 @@
    function newFeature () {
    console.log("Now the feature works!");
    + console.log("And the output even more nice!");
    }

    commit 4a1961bce62840eaef9c4392fe5cc799e38c9b7b
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:27:18 2012 +0400

    Fixed feature

    diff --git a/new-feature.js b/new-feature.js
    index d502e68..a214bad 100644
    --- a/new-feature.js
    +++ b/new-feature.js
    @@ -1,3 +1,3 @@
    function newFeature () {
    - throw new Error("Not implemented yet! :(");
    + console.log("Now the feature works!");
    }

    commit ca32a6dac7b6f97975edbe19a4296c2ee7682f68
    Author: Andrey <aslushnikov@gmail.com>
    :
    function newFeature () {
    console.log("Now the feature works!");
    + console.log("And the output even more nice!");
    }

    commit 4a1961bce62840eaef9c4392fe5cc799e38c9b7b
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:27:18 2012 +0400

    Fixed feature

    diff --git a/new-feature.js b/new-feature.js
    index d502e68..a214bad 100644
    --- a/new-feature.js
    +++ b/new-feature.js
    @@ -1,3 +1,3 @@
    function newFeature () {
    - throw new Error("Not implemented yet! :(");
    + console.log("Now the feature works!");
    }

    commit ca32a6dac7b6f97975edbe19a4296c2ee7682f68
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:25:51 2012 +0400

    Filled in README.md with proper input

    diff --git a/README.md b/README.md
    index 54f3308..c60c612 100644
    --- a/README.md
    +++ b/README.md
    @@ -1,2 +1 @@
    -I'll fill in the file some time later..
    -
    +This project is a FAKE.

    commit 58a8c8edcfdd00c6d8cce9aada8f987a1677571f
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:24:41 2012 +0400

    Added a stub for the feature

    diff --git a/new-feature.js b/new-feature.js
    new file mode 100644
    index 0000000..d502e68
    --- /dev/null
    +++ b/new-feature.js
    @@ -0,0 +1,3 @@
    +function newFeature () {
    + throw new Error("Not implemented yet! :(");
    +}

    commit ea3dbcc5e2d2359698c3606b0ec44af9f76def54
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:20:32 2012 +0400

    Initial commit

    diff --git a/README.md b/README.md
    new file mode 100644
    index 0000000..54f3308
    --- /dev/null
    +++ b/README.md
    @@ -0,0 +1,2 @@
    +I'll fill in the file some time later..
    +

    $ git checkout master
    Switched to branch 'master'

    $ git cherry-pick ca32a6dac7b6f97975edbe19a4296c2ee7682f68
    [master e679245] Filled in README.md with proper input
    Author: Andrey <aslushnikov@gmail.com>
    Date: Wed Mar 28 02:25:51 2012 +0400
    1 file changed, 1 insertion(+), 2 deletions(-)

    $

    $ githug
    ********************************************************************************
    * Githug *
    ********************************************************************************
    Congratulations, you have solved the level!
阅读更多...

请我喝杯咖啡吧~

支付宝
微信