[Tex/LaTex] biber generate empty bbl file

biberbiblatex

I use biblatex with biber as its backend. My code is following (test.tex):

\documentclass{article}
\usepackage[backend=biber]{biblatex}
\addbibresource{ref.bib}

\begin{document}
Test test test \cite{Lee2009a}
\printbibliography
\end{document}

and ref.bib is

@article{Lee2009a,
    author  = {Lee, Geun},
    journal = {The Korean Journal of Defense Analysis},
    number  = {2},
    pages   = {205--218},
    title   = {{A Theory of Soft Power and Korea's Soft Power Strategy}},
    volume  = {21},
    year    = {2009}
}

I run biber after pdflatex. However, it only gives an empty bbl file.
The whole blg file is

[0] Config.pm:354> INFO - This is Biber 2.7
[1] Config.pm:357> INFO - Logfile is 'test.blg'
[80] biber-MSWIN32:303> INFO - === 
[123] Biber.pm:359> INFO - Reading 'test.bcf'
[282] Biber.pm:835> INFO - Found 1 citekeys in bib section 0
[314] Biber.pm:3670> INFO - Processing section 0
[352] Biber.pm:3840> INFO - Looking for bibtex format file 'ref.bib' for section 0

Compiling on the command line, biber test will give the following things on cmd:

INFO - This is Biber 2.7
INFO - Logfile is 'test.blg'
INFO - Reading 'test.bcf'
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'ref.bib' for section 0

biber --debug test will give (祥东 is my user name)

INFO - This is Biber 2.7
INFO - Logfile is 'test.blg'
INFO - DEBUG mode: all messages are logged to 'test.blg'
INFO - Reading 'test.bcf'
INFO - Found 1 citekeys in bib section 0
INFO - Processing section 0
INFO - Looking for bibtex format file 'ref.bib' for section 0
write_file 'C:\Users\祥东\AppData\Local\Temp\tlZld3jtIt\ref.bib_8456.utf8' - sysopen: No such file or directory at C:\Users\祥东\AppData\Local\Temp\par-cfe9b6ab\cache-2aa0b74e6d5e75f8e71a4b8c9501a9c7c24ddbf0\inc\lib/Biber/Input/file/bibtex.pm line 1428.

ref.bib_8456.utf8 in the last line may change at different run.

All the file are stored in a folder named testbib on my desktop.

Platform: TeX Live 2017, biblatex 3.7 and biber 2.7 on Windows 10.

Best Answer

With the hint from @Ulrike Fischer, I have some solutions:

Change a user environment variable named TEMP and TMP. Their original value should be

%USERPROFILE%\AppData\Local\Temp

It is actually C:\Users\<username>\AppData\Local\Temp. Then modify it to

%SystemRoot%\TEMP;%USERPROFILE%\AppData\Local\Temp

Now it is C:\WINDOWS\temp;C:\Users\<username>\AppData\Local\Temp.

Then run

biber --cache

to generate cache files. It will take sometime and then show the current cache location.

(You can run biber <filename> as normal. It will generate the cache files automatically)

Now biber can run normally.

More information can be found in section 4.2 in biber manual (v2.7).


Environment variables

You may find it in Control panel > System > Advanced system settings > Environment variables.... The user environment variables TEMP and TMP can be found at the top panel.

Note

I'm not sure whether this way is OK because it has changed the system behaviour.