PAnsiChar会将Unicode字符串转换为Ansi字符串的指针吗?

时间:2017-12-15 07:27:00

标签: delphi unicode

我正在使用Delphi XE3。

我想知道PAnsiChar是否可以直接将Unicode字符串转换为指向Ansi字符串的指针,如下所示:

import { Component } from "@angular/core"
import { FormControl, FormGroup, FormBuilder, Validator, Validators,ReactiveFormsModule } from "@angular/forms";
import { customer } from '../model/customerModel'
import { Router } from "@angular/router";

export class regComponent
{
    private Customer:customer;
    private regForm:FormGroup;
    private firstName:FormControl;

    constructor (private formBuilder:FormBuilder,private router:Router)
    {

        this.firstName=new FormControl('',[Validators.required])

        this.regForm=formBuilder.group({
        firstName:this.firstName
    })

console.log(this.regForm.value);
}

由于

1 个答案:

答案 0 :(得分:1)

P1 := PAnsiChar(MyString);

这不执行任何转换。指针包含UTF-16数据的地址。相反,你需要:

P1 := PAnsiChar(AnsiString(MyString));

当然,编译器会在从UTF-16转换为ANSI时可能会丢失数据。你应该非常仔细地问自己为什么要考虑这个问题。

 MyString1 := P1;

ANSI文本将转换为UTF-16。