电脑上都认可日语的しゃしん和中文的写真是同样的两个字,为什么考试的时候不能把中文的写真写上去?
在这个问题上,是电脑错了,而不是考试规则错了。
Unicode 在编码中日韩文字的时候,为了节省码位,用了一种非常恶劣且愚蠢的方式:把中文、日文、韩文(朝鲜文)中的汉字混在一起编码,并且把不同语言中同源的相似汉字视作同一个字符。这种方式被称为表意文字认同原则[1]。
结果就导致了非常糟糕的后果——这两个“灰”字,还有题主提到的两种“写”、两种“真”之类的字,在计算机看来完全是同一个字。我们平时用的是简体中文环境,字形就按照简体中文的样式来显示;系统切换到日语环境,字形就按照日文的样式来显示。
而事实上,简中「灰」和日语「????」在演化的过程中,已经出现了明显的写法区别,并非同一个汉字(就像同卵双胞胎的 DNA 一样,但不能因此将一对双胞胎视作同一个人,只发一个身份证)。Unicode 把这些汉字视作同一个字符,因此造成了题主误解。Unicode 本应把这些字符分开编码的。
目前临时的解决办法主要有 2 个。一种是单独声明每种语言。比如在维基百科中,简中语言下默认显示「灰」,这时如果必须要显示日本写法的「????」(上面第 2 张图),就会用到特殊标记:{ lang | ja | 灰 }[2],在页面上这串标记就会显示为日语「????」。至于怎么显示出不同的字形,就看开发者和字体的水平了。
另一种是变体选择符[3]。这是官方提供的办法,在普通字后面跟一个隐形的变体选择符,就会显示为对应的字形。比如正常输入「灰」,显示的是简中「灰」;而输入「灰2」(此处用 2 代表变体选择符)时,就会显示成日语「????」。但是现在的字体对变体选择符的支持特别差,所以几乎看不到这种用法。
而 Unicode 编码应用了这么多年,也已经很难纠正这些错误了。真要纠正的话,只能寄希望于主流字体和软件都广泛支持变体选择符,或者 Unicode 重新给中日韩的汉字单独分区(不可能的事)。
最后,我想提醒题主的是,即使从电脑的角度来看,你也是错的。因为你在明确声明了 ja-JP 的考试中使用了 zh-CN 的字库。