关于汉字编码格式的问题

一个文件中的编码应该是统一的把,不存在某个汉字是一种编码格式。另一个汉字是另一个编码格式把,但是我现在遇到的请教就比较特别,char str[20]="粵A22222";这样一个字符串,我是在window下建立的txt文档,编码格式是ANSI对应个中文编码格式应该就是GB2312,然后我进行如下操作
short core;
memcpy(&core,str,2);
printf("%d\n",core);
打印出来的core的值是-25669,但是同样的字符串,同样的汉字粵,另一个转换的值是-15916,怎么理解呢,同一个文档中的其他汉字如“苏”,“辽”在2个转换是同样的值,就这个“粵”不一样,小弟对编码这块不是很了解,还请明示,谢谢

编码格式只是程序在读写数据的时候怎么翻译读到的数据而已;
一个文件里如果被写入了两种编码格式的数据,那么不管用那种编码读取,都会出现一部分正常,一部分乱码的情况;

程序读文件时,默认使用什么编码在读,在不同的软件平台和系统环境下是不一样的,通常是和这个软件平台源代码编码格式是一致的;
为了保证读到的文本正确处理,应当显示的指示读取时使用的编码方式。

不太清楚你的问题,你这里定义的是short,其他位置是什么呢,如果不一样的话给一样的看看