Android DialogFragment中的非英语文本显示为问号

Android DialogFragment中的非英语文本显示为问号,android,dialogfragment,Android,Dialogfragment,我在尝试创建一个DialogFragment时遇到了一个问题,该DialogFragment包含一个标题和一些希伯来语文本 文本显示为,而英文文本似乎是有序的 我的代码: public Dialog onCreateDialog(Bundle savedInstanceState) { LayoutInflater factory = LayoutInflater.from(getActivity()); final View textEntryView = fa

我在尝试创建一个DialogFragment时遇到了一个问题,该DialogFragment包含一个标题和一些希伯来语文本

文本显示为
,而英文文本似乎是有序的

我的代码:

public Dialog onCreateDialog(Bundle savedInstanceState) {
        LayoutInflater factory = LayoutInflater.from(getActivity());
        final View textEntryView = factory.inflate(R.layout.info_fragment, null);
        return new AlertDialog.Builder(getActivity())
                .setView(textEntryView)
                .setTitle(<some sentence in hebrew>)
                .setMessage(<another hebrew text>)
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                    }
                }).create();
}
public对话框onCreateDialog(Bundle savedInstanceState){
LayoutInflater工厂=LayoutInflater.from(getActivity());
最终视图文本EntryView=工厂。充气(R.layout.info_片段,空);
返回新的AlertDialog.Builder(getActivity())
.setView(textEntryView)
.setTitle()

.setMessage(

res
文件夹中创建文件夹
值,并从
res复制
strings.xml
文件⇒ 价值观⇒ strings.xml
位置

转到
res⇒ 价值观⇒ strings.xml
然后声明字符串:

<string name="hebrew_title">hello</string>
<string name="hebrew_title">שלום</string>
然后在您的代码中这样编写:

.setTitle(getResources().getString(R.string.hebrew_title))
因此,当您将设备本地语言设置为希伯来语时,您的文本将以“希伯来语”显示。希望这能解决您的问题


注意:还要确保字符串在
字符串.xml
文件的
值he
值文件夹中具有相同的
id

它们之间的区别是什么?为什么您认为这种方式会起作用?如果设备未本地化为希伯来语,则会生成英文文本。我的设备是英文的,有希伯来语w作为第二种语言。如果我在我的活动中创建一个常规的AlertDialog,希伯来语文本会显示得很好。使用一个包含AlertDialog的片段是否会出现这样的情况?我想你在Android Studio中使用的是
windows-1252编码
,这就是为什么你在Android Emulator中获得
。将编码更改为
utf-8
。您将无法获得