const currentPage = dv.current().file;
const dailyPages = dv.pages('"0-Daily"').sort(k=>k.file.name, "asc");
const currentPageName = currentPage.name;
const index = dailyPages.findIndex((e) => {return e.file.name === currentPageName});
if (index < 1) {
	dv.table(["File", "Created", "Size"],[]);
} else {
	const lastIndex = index - 1;
	const lastPage = dailyPages[lastIndex].file;
	const allPages = dv.pages().values;
	const searchPages = [];
	
	const lastTime = dv.parse(lastPage.name);
	const currentTime = dv.parse(currentPage.name);
 
	debugger;
	
	for (let page of allPages) {
		const pageFile = page.file;
		if (pageFile.cday > lastTime && pageFile.cday <= currentTime) {
		  searchPages.push(pageFile);
		}
	}
	dv.table(["File", "Created", "Size"], searchPages.sort((a, b) => a.ctime > b.ctime ? 1 : -1).map(b => [b.link, b.ctime, b.size]));
}
 

Unicode 编码和生僻字

unicode 编码最新版本是 2009 年 9 月出版的 5.2 版,对汉字又进行了扩充。以往常说的 20902 个汉字,在 unicode 中从 0x4e00-0x9fa5,但这不是全部的 unicode 汉字。最新版的 unicode 汉字块如下:

  • 0x4e00-0x9fff cjk 统一字型 常用字 共 20992 个(实际只定义到 0x9fc3)
  • 0x3400-0x4dff cjk 统一字型扩展表 a 少用字 共 6656 个
  • 0x20000-0x2a6df cjk 统一字型扩展表 b 少用字,历史上使用 共 42720 个
  • 0xf900-0xfaff cjk 兼容字型 重复字,可统一变体,共同字 共 512 个
  • 0x2f800-0x2fa1f cjk 兼容字型补遗 可统一变体 共 544 个

一共定义大陆,台湾,香港,新加坡,马来西亚汉字,日语和韩语汉字或偏旁部首 71424 个。

如何识别生僻汉字,特别是 0x20000-0x2a6df 这种超过两个字节编码范围的生僻汉字,是次博客的重点。如果想看答案,可直接挑战到博客末尾。

AWT Font.Display 的返回问题

如果在 Java 中 Font.canDisplay 方法不生效,可能有以下几个可能的问题:

  1. 字体未被正确加载:确保您正在使用的字体已经被正确加载。可以使用 GraphicsEnvironment.getAllFonts() 方法来获取系统中可用的字体列表,然后检查您要使用的字体是否包含在其中。
  2. 字符编码问题:Font.canDisplay 方法使用 Unicode 字符编码来确定字体是否能够显示给定的字符。请确保您传递给 canDisplay 方法的字符是以正确的 Unicode 编码进行处理的。如果字符编码不正确,canDisplay 方法可能无法正确地检查字体是否支持该字符。
  3. 字体样式不匹配:Font.canDisplay 方法是根据指定字体的样式(例如粗体、斜体等)来检查字符的显示能力的。如果字体样式与要显示的字符不匹配,可能导致 canDisplay 返回 false。确保字体的样式与要显示的字符的要求匹配。
  4. 平台限制:某些平台或环境可能对字体显示的能力有一些限制。例如,操作系统可能不支持某些特定字体或字符集。在这种情况下,Font.canDisplay 方法可能无法提供准确的结果。

如果您仍然遇到问题,建议提供更多的代码和上下文信息,以便更好地理解问题,并给出更具体的帮助和建议。